import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "./types"; /** * Provides a Cloudflare Spectrum Application. You can extend the power of Cloudflare's DDoS, TLS, and IP Firewall to your other TCP-based services. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi_cloudflare from "@mapped/pulumi-cloudflare"; * * // Define a spectrum application proxies ssh traffic * const sshProxy = new cloudflare.SpectrumApplication("sshProxy", { * zoneId: _var.cloudflare_zone_id, * protocol: "tcp/22", * trafficType: "direct", * dns: { * type: "CNAME", * name: "ssh.example.com", * }, * originDirects: ["tcp://109.151.40.129:22"], * }); * ``` * * ## Import * * Spectrum resource can be imported using a zone ID and Application ID, e.g. * * ```sh * $ pulumi import cloudflare:index/spectrumApplication:SpectrumApplication example d41d8cd98f00b204e9800998ecf8427e/9a7806061c88ada191ed06f989cc3dac * ``` * * where* `d41d8cd98f00b204e9800998ecf8427e` - zone ID, as returned from [API](https://api.cloudflare.com/#zone-list-zones) * `9a7806061c88ada191ed06f989cc3dac` - Application ID */ export declare class SpectrumApplication extends pulumi.CustomResource { /** * Get an existing SpectrumApplication 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, state?: SpectrumApplicationState, opts?: pulumi.CustomResourceOptions): SpectrumApplication; /** * Returns true if the given object is an instance of SpectrumApplication. 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 SpectrumApplication; /** * . Enables Argo Smart Routing. Defaults to `false`. */ readonly argoSmartRouting: pulumi.Output; /** * The name and type of DNS record for the Spectrum application. Fields documented below. */ readonly dns: pulumi.Output; /** * . Choose which types of IP addresses will be provisioned for this subdomain. Valid values are: `all`, `ipv4`, `ipv6`. Defaults to `all`. */ readonly edgeIpConnectivity: pulumi.Output; /** * . A list of edge IPs (IPv4 and/or IPv6) to configure Spectrum application to. Requires [Bring Your Own IP](https://developers.cloudflare.com/spectrum/getting-started/byoip/) provisioned. */ readonly edgeIps: pulumi.Output; /** * Enables the IP Firewall for this application. Defaults to `true`. */ readonly ipFirewall: pulumi.Output; /** * A list of destination addresses to the origin. e.g. `tcp://192.0.2.1:22`. */ readonly originDirects: pulumi.Output; /** * A destination DNS addresses to the origin. Fields documented below. */ readonly originDns: pulumi.Output; /** * If using `originDns` and not `originPortRange`, this is a required attribute. Origin port to proxy traffice to e.g. `22`. */ readonly originPort: pulumi.Output; /** * If using `originDns` and not `originPort`, this is a required attribute. Origin port range to proxy traffice to. When using a range, the protocol field must also specify a range, e.g. `tcp/22-23`. Fields documented below. */ readonly originPortRange: pulumi.Output; /** * The port configuration at Cloudflare’s edge. e.g. `tcp/22`. */ readonly protocol: pulumi.Output; /** * Enables a proxy protocol to the origin. Valid values are: `off`, `v1`, `v2`, and `simple`. Defaults to `off`. */ readonly proxyProtocol: pulumi.Output; /** * TLS configuration option for Cloudflare to connect to your origin. Valid values are: `off`, `flexible`, `full` and `strict`. Defaults to `off`. */ readonly tls: pulumi.Output; /** * Sets application type. Valid values are: `direct`, `http`, `https`. Defaults to `direct`. */ readonly trafficType: pulumi.Output; /** * The DNS zone ID to add the application to */ readonly zoneId: pulumi.Output; /** * Create a SpectrumApplication 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: SpectrumApplicationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SpectrumApplication resources. */ export interface SpectrumApplicationState { /** * . Enables Argo Smart Routing. Defaults to `false`. */ argoSmartRouting?: pulumi.Input; /** * The name and type of DNS record for the Spectrum application. Fields documented below. */ dns?: pulumi.Input; /** * . Choose which types of IP addresses will be provisioned for this subdomain. Valid values are: `all`, `ipv4`, `ipv6`. Defaults to `all`. */ edgeIpConnectivity?: pulumi.Input; /** * . A list of edge IPs (IPv4 and/or IPv6) to configure Spectrum application to. Requires [Bring Your Own IP](https://developers.cloudflare.com/spectrum/getting-started/byoip/) provisioned. */ edgeIps?: pulumi.Input[]>; /** * Enables the IP Firewall for this application. Defaults to `true`. */ ipFirewall?: pulumi.Input; /** * A list of destination addresses to the origin. e.g. `tcp://192.0.2.1:22`. */ originDirects?: pulumi.Input[]>; /** * A destination DNS addresses to the origin. Fields documented below. */ originDns?: pulumi.Input; /** * If using `originDns` and not `originPortRange`, this is a required attribute. Origin port to proxy traffice to e.g. `22`. */ originPort?: pulumi.Input; /** * If using `originDns` and not `originPort`, this is a required attribute. Origin port range to proxy traffice to. When using a range, the protocol field must also specify a range, e.g. `tcp/22-23`. Fields documented below. */ originPortRange?: pulumi.Input; /** * The port configuration at Cloudflare’s edge. e.g. `tcp/22`. */ protocol?: pulumi.Input; /** * Enables a proxy protocol to the origin. Valid values are: `off`, `v1`, `v2`, and `simple`. Defaults to `off`. */ proxyProtocol?: pulumi.Input; /** * TLS configuration option for Cloudflare to connect to your origin. Valid values are: `off`, `flexible`, `full` and `strict`. Defaults to `off`. */ tls?: pulumi.Input; /** * Sets application type. Valid values are: `direct`, `http`, `https`. Defaults to `direct`. */ trafficType?: pulumi.Input; /** * The DNS zone ID to add the application to */ zoneId?: pulumi.Input; } /** * The set of arguments for constructing a SpectrumApplication resource. */ export interface SpectrumApplicationArgs { /** * . Enables Argo Smart Routing. Defaults to `false`. */ argoSmartRouting?: pulumi.Input; /** * The name and type of DNS record for the Spectrum application. Fields documented below. */ dns: pulumi.Input; /** * . Choose which types of IP addresses will be provisioned for this subdomain. Valid values are: `all`, `ipv4`, `ipv6`. Defaults to `all`. */ edgeIpConnectivity?: pulumi.Input; /** * . A list of edge IPs (IPv4 and/or IPv6) to configure Spectrum application to. Requires [Bring Your Own IP](https://developers.cloudflare.com/spectrum/getting-started/byoip/) provisioned. */ edgeIps?: pulumi.Input[]>; /** * Enables the IP Firewall for this application. Defaults to `true`. */ ipFirewall?: pulumi.Input; /** * A list of destination addresses to the origin. e.g. `tcp://192.0.2.1:22`. */ originDirects?: pulumi.Input[]>; /** * A destination DNS addresses to the origin. Fields documented below. */ originDns?: pulumi.Input; /** * If using `originDns` and not `originPortRange`, this is a required attribute. Origin port to proxy traffice to e.g. `22`. */ originPort?: pulumi.Input; /** * If using `originDns` and not `originPort`, this is a required attribute. Origin port range to proxy traffice to. When using a range, the protocol field must also specify a range, e.g. `tcp/22-23`. Fields documented below. */ originPortRange?: pulumi.Input; /** * The port configuration at Cloudflare’s edge. e.g. `tcp/22`. */ protocol: pulumi.Input; /** * Enables a proxy protocol to the origin. Valid values are: `off`, `v1`, `v2`, and `simple`. Defaults to `off`. */ proxyProtocol?: pulumi.Input; /** * TLS configuration option for Cloudflare to connect to your origin. Valid values are: `off`, `flexible`, `full` and `strict`. Defaults to `off`. */ tls?: pulumi.Input; /** * Sets application type. Valid values are: `direct`, `http`, `https`. Defaults to `direct`. */ trafficType?: pulumi.Input; /** * The DNS zone ID to add the application to */ zoneId: pulumi.Input; }