pulumi-logtail
Version:
A Pulumi provider for managing Logtail log management and analytics resources, dynamically bridged from the Terraform Logtail provider with support for sources, metrics, and log aggregation.
312 lines (311 loc) • 13.6 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
export declare class Source extends pulumi.CustomResource {
/**
* Get an existing Source resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: SourceState, opts?: pulumi.CustomResourceOptions): Source;
/**
* Returns true if the given object is an instance of Source. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Source;
/**
* The time when this monitor group was created.
*/
readonly createdAt: pulumi.Output<string>;
/**
* Optional custom bucket configuration for the source. When provided, all fields (name, endpoint, access_key_id,
* secret_access_key) are required.
*/
readonly customBucket: pulumi.Output<outputs.SourceCustomBucket | undefined>;
/**
* Data region or private cluster name to create the source in. Permitted values for most plans are: `us_east`, `us_west`,
* `germany`, `singapore`.
*/
readonly dataRegion: pulumi.Output<string>;
/**
* The host where the logs or metrics should be sent. See [documentation](https://betterstack.com/docs/logs/start/) for
* your specific source platform for details.
*/
readonly ingestingHost: pulumi.Output<string>;
/**
* This property allows you to temporarily pause data ingesting for this source (e.g., when you are reaching your plan's
* usage quota and you want to prioritize some sources over others).
*/
readonly ingestingPaused: pulumi.Output<boolean>;
/**
* Freeform text template for formatting Live tail output with columns wrapped in {column} brackets. Example: "PID:
* {message_json.pid} {level} {message}"
*/
readonly liveTailPattern: pulumi.Output<string>;
/**
* Data retention for logs in days. There might be additional charges for longer retention.
*/
readonly logsRetention: pulumi.Output<number>;
/**
* Data retention for metrics in days. There might be additional charges for longer retention.
*/
readonly metricsRetention: pulumi.Output<number>;
/**
* The name of this source.
*/
readonly name: pulumi.Output<string>;
/**
* The platform of this source. This value can be set only when you're creating a new source. You can't update this value
* later. Valid values are: - `apache2` - `aws_cloudwatch` - `aws_ecs` - `aws_elb` - `aws_fargate` - `cloudflare_logpush` -
* `cloudflare_worker` - `datadog_agent` - `digitalocean` - `docker` - `dokku` - `dotnet` - `elasticsearch` - `erlang` -
* `filebeat` - `flights` - `fluentbit` - `fluentd` - `fly_io` - `go` - `google_cloud_pubsub` - `haproxy` - `heroku` -
* `http` - `java` - `javascript` - `kubernetes` - `logstash` - `minio` - `mongodb` - `mysql` - `nginx` - `open_telemetry`
* - `php` - `postgresql` - `prometheus` - `prometheus_scrape` - `python` - `rabbitmq` - `redis` - `render` - `rsyslog` -
* `ruby` - `syslog-ng` - `traefik` - `ubuntu` - `vector` - `vercel_integration`
*/
readonly platform: pulumi.Output<string>;
/**
* For scrape platform types, how often to scrape the URLs.
*/
readonly scrapeFrequencySecs: pulumi.Output<number | undefined>;
/**
* Basic auth password for scraping.
*/
readonly scrapeRequestBasicAuthPassword: pulumi.Output<string | undefined>;
/**
* Basic auth username for scraping.
*/
readonly scrapeRequestBasicAuthUser: pulumi.Output<string | undefined>;
/**
* An array of request headers, each containing `name` and `value` fields.
*/
readonly scrapeRequestHeaders: pulumi.Output<{
[key: string]: string;
}[] | undefined>;
/**
* For scrape platform types, the set of urls to scrape.
*/
readonly scrapeUrls: pulumi.Output<string[] | undefined>;
/**
* The ID of the source group this source belongs to.
*/
readonly sourceGroupId: pulumi.Output<number | undefined>;
/**
* The table name generated for this source.
*/
readonly tableName: pulumi.Output<string>;
/**
* Used to specify the team the resource should be created in when using global tokens.
*/
readonly teamName: pulumi.Output<string | undefined>;
/**
* The token of this source. This token is used to identify and route the data you will send to Better Stack.
*/
readonly token: pulumi.Output<string>;
/**
* The time when this monitor group was updated.
*/
readonly updatedAt: pulumi.Output<string>;
/**
* The VRL code that's used to transform events. Read more about [VRL
* transformations](https://betterstack.com/docs/logs/using-logtail/transforming-ingested-data/logs-vrl/).
*/
readonly vrlTransformation: pulumi.Output<string | undefined>;
/**
* Create a Source resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: SourceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Source resources.
*/
export interface SourceState {
/**
* The time when this monitor group was created.
*/
createdAt?: pulumi.Input<string>;
/**
* Optional custom bucket configuration for the source. When provided, all fields (name, endpoint, access_key_id,
* secret_access_key) are required.
*/
customBucket?: pulumi.Input<inputs.SourceCustomBucket>;
/**
* Data region or private cluster name to create the source in. Permitted values for most plans are: `us_east`, `us_west`,
* `germany`, `singapore`.
*/
dataRegion?: pulumi.Input<string>;
/**
* The host where the logs or metrics should be sent. See [documentation](https://betterstack.com/docs/logs/start/) for
* your specific source platform for details.
*/
ingestingHost?: pulumi.Input<string>;
/**
* This property allows you to temporarily pause data ingesting for this source (e.g., when you are reaching your plan's
* usage quota and you want to prioritize some sources over others).
*/
ingestingPaused?: pulumi.Input<boolean>;
/**
* Freeform text template for formatting Live tail output with columns wrapped in {column} brackets. Example: "PID:
* {message_json.pid} {level} {message}"
*/
liveTailPattern?: pulumi.Input<string>;
/**
* Data retention for logs in days. There might be additional charges for longer retention.
*/
logsRetention?: pulumi.Input<number>;
/**
* Data retention for metrics in days. There might be additional charges for longer retention.
*/
metricsRetention?: pulumi.Input<number>;
/**
* The name of this source.
*/
name?: pulumi.Input<string>;
/**
* The platform of this source. This value can be set only when you're creating a new source. You can't update this value
* later. Valid values are: - `apache2` - `aws_cloudwatch` - `aws_ecs` - `aws_elb` - `aws_fargate` - `cloudflare_logpush` -
* `cloudflare_worker` - `datadog_agent` - `digitalocean` - `docker` - `dokku` - `dotnet` - `elasticsearch` - `erlang` -
* `filebeat` - `flights` - `fluentbit` - `fluentd` - `fly_io` - `go` - `google_cloud_pubsub` - `haproxy` - `heroku` -
* `http` - `java` - `javascript` - `kubernetes` - `logstash` - `minio` - `mongodb` - `mysql` - `nginx` - `open_telemetry`
* - `php` - `postgresql` - `prometheus` - `prometheus_scrape` - `python` - `rabbitmq` - `redis` - `render` - `rsyslog` -
* `ruby` - `syslog-ng` - `traefik` - `ubuntu` - `vector` - `vercel_integration`
*/
platform?: pulumi.Input<string>;
/**
* For scrape platform types, how often to scrape the URLs.
*/
scrapeFrequencySecs?: pulumi.Input<number>;
/**
* Basic auth password for scraping.
*/
scrapeRequestBasicAuthPassword?: pulumi.Input<string>;
/**
* Basic auth username for scraping.
*/
scrapeRequestBasicAuthUser?: pulumi.Input<string>;
/**
* An array of request headers, each containing `name` and `value` fields.
*/
scrapeRequestHeaders?: pulumi.Input<pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>[]>;
/**
* For scrape platform types, the set of urls to scrape.
*/
scrapeUrls?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The ID of the source group this source belongs to.
*/
sourceGroupId?: pulumi.Input<number>;
/**
* The table name generated for this source.
*/
tableName?: pulumi.Input<string>;
/**
* Used to specify the team the resource should be created in when using global tokens.
*/
teamName?: pulumi.Input<string>;
/**
* The token of this source. This token is used to identify and route the data you will send to Better Stack.
*/
token?: pulumi.Input<string>;
/**
* The time when this monitor group was updated.
*/
updatedAt?: pulumi.Input<string>;
/**
* The VRL code that's used to transform events. Read more about [VRL
* transformations](https://betterstack.com/docs/logs/using-logtail/transforming-ingested-data/logs-vrl/).
*/
vrlTransformation?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a Source resource.
*/
export interface SourceArgs {
/**
* Optional custom bucket configuration for the source. When provided, all fields (name, endpoint, access_key_id,
* secret_access_key) are required.
*/
customBucket?: pulumi.Input<inputs.SourceCustomBucket>;
/**
* Data region or private cluster name to create the source in. Permitted values for most plans are: `us_east`, `us_west`,
* `germany`, `singapore`.
*/
dataRegion?: pulumi.Input<string>;
/**
* This property allows you to temporarily pause data ingesting for this source (e.g., when you are reaching your plan's
* usage quota and you want to prioritize some sources over others).
*/
ingestingPaused?: pulumi.Input<boolean>;
/**
* Freeform text template for formatting Live tail output with columns wrapped in {column} brackets. Example: "PID:
* {message_json.pid} {level} {message}"
*/
liveTailPattern?: pulumi.Input<string>;
/**
* Data retention for logs in days. There might be additional charges for longer retention.
*/
logsRetention?: pulumi.Input<number>;
/**
* Data retention for metrics in days. There might be additional charges for longer retention.
*/
metricsRetention?: pulumi.Input<number>;
/**
* The name of this source.
*/
name?: pulumi.Input<string>;
/**
* The platform of this source. This value can be set only when you're creating a new source. You can't update this value
* later. Valid values are: - `apache2` - `aws_cloudwatch` - `aws_ecs` - `aws_elb` - `aws_fargate` - `cloudflare_logpush` -
* `cloudflare_worker` - `datadog_agent` - `digitalocean` - `docker` - `dokku` - `dotnet` - `elasticsearch` - `erlang` -
* `filebeat` - `flights` - `fluentbit` - `fluentd` - `fly_io` - `go` - `google_cloud_pubsub` - `haproxy` - `heroku` -
* `http` - `java` - `javascript` - `kubernetes` - `logstash` - `minio` - `mongodb` - `mysql` - `nginx` - `open_telemetry`
* - `php` - `postgresql` - `prometheus` - `prometheus_scrape` - `python` - `rabbitmq` - `redis` - `render` - `rsyslog` -
* `ruby` - `syslog-ng` - `traefik` - `ubuntu` - `vector` - `vercel_integration`
*/
platform: pulumi.Input<string>;
/**
* For scrape platform types, how often to scrape the URLs.
*/
scrapeFrequencySecs?: pulumi.Input<number>;
/**
* Basic auth password for scraping.
*/
scrapeRequestBasicAuthPassword?: pulumi.Input<string>;
/**
* Basic auth username for scraping.
*/
scrapeRequestBasicAuthUser?: pulumi.Input<string>;
/**
* An array of request headers, each containing `name` and `value` fields.
*/
scrapeRequestHeaders?: pulumi.Input<pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>[]>;
/**
* For scrape platform types, the set of urls to scrape.
*/
scrapeUrls?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The ID of the source group this source belongs to.
*/
sourceGroupId?: pulumi.Input<number>;
/**
* Used to specify the team the resource should be created in when using global tokens.
*/
teamName?: pulumi.Input<string>;
/**
* The VRL code that's used to transform events. Read more about [VRL
* transformations](https://betterstack.com/docs/logs/using-logtail/transforming-ingested-data/logs-vrl/).
*/
vrlTransformation?: pulumi.Input<string>;
}