UNPKG

@pulumi/fastly

Version:

A Pulumi package for creating and managing fastly cloud resources.. Based on terraform-provider-fastly: version v4

1,227 lines (1,226 loc) • 141 kB
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 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 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). 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. One of `US` or `EU`. 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 { /** * Value of the `Content-Type` header sent with the request */ contentType?: pulumi.Input<string>; /** * 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>; /** * 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 ServiceComputeLoggingOpenstack { /** * Your OpenStack account access key */ accessKey: pulumi.Input<string>; /** * The name of your OpenStack 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 OpenStack logging 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>; /** * A 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>; /** * Your OpenStack auth url */ url: pulumi.Input<string>; /** * The username for your OpenStack account */ user: pulumi.Input<string>; } export interface ServiceComputeLoggingPapertrail { /** * The address of the Papertrail endpoint */ address: pulumi.Input<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: pulumi.Input<string>; /** * The port associated with the address where the Papertrail endpoint can be accessed */ 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>; } 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?: 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>; /** * 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?: 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>; /** * The unique name of the S3 logging 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>; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: pulumi.Input<string>; /** * The S3 storage class (redundancy level). Should be one of: `standard`, `intelligentTiering`, `standardIa`, `onezoneIa`, `glacier`, `glacierIr`, `deepArchive`, or `reducedRedundancy` */ redundancy?: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<string>; /** * Specify what type of server side encryption should be used. Can be either `AES256` or `aws:kms` */ serverSideEncryption?: pulumi.Input<string>; /** * Optional server-side KMS Key Id. Must be set if serverSideEncryption is set to `aws:kms` */ serverSideEncryptionKmsKeyId?: pulumi.Input<string>; /** * The `strftime` specified timestamp formatting (default `%Y-%m-%dT%H:%M:%S.000`) */ timestampFormat?: pulumi.Input<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: 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 name of the logfile field sent to Scalyr */ projectId?: pulumi.Input<string>; /** * The region that log data will be sent to. One of `US` or `EU`. Defaults to `US` if undefined */ region?: pulumi.Input<string>; /** * The token to use for authentication (https://www.scalyr.com/keys) */ token: pulumi.Input<string>; } export interface ServiceComputeLoggingSftp { /** * The SFTP 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 SFTP 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. If both `password` and `secretKey` are passed, `secretKey` will be preferred */ 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 log files are finalized so they can be available for reading (in seconds, default `3600`) */ period?: pulumi.Input<number>; /** * The port the SFTP service listens on. (Default: `22`) */ 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>; /** * A PGP public key that Fastly will use to encrypt your log files before writing them to disk */ publicKey?: pulumi.Input<string>; /** * The SSH private key for the server. If both `password` and `secretKey` are passed, `secretKey` will be preferred */ secretKey?: pulumi.Input<string>; /** * A list of host keys for all hosts we can connect to over SFTP */ sshKnownHosts: 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 */ user: pulumi.Input<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