import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as cloudflare from "@pulumi/cloudflare"; * * const exampleSpectrumApplication = new cloudflare.SpectrumApplication("example_spectrum_application", { * zoneId: "023e105f4ecef8ad9ca31a8372d0c353", * dns: { * name: "ssh.example.com", * type: "CNAME", * }, * ipFirewall: true, * protocol: "tcp/22", * proxyProtocol: "off", * tls: "full", * trafficType: "direct", * argoSmartRouting: true, * edgeIps: { * connectivity: "all", * type: "dynamic", * }, * originDirects: ["tcp://127.0.0.1:8080"], * originDns: { * name: "origin.example.com", * ttl: 600, * type: "", * }, * originPort: 22, * }); * ``` * * ## Import * * ```sh * $ pulumi import cloudflare:index/spectrumApplication:SpectrumApplication example '/' * ``` */ 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 for this application. * Notes: Only available for TCP applications with trafficType set to "direct". */ readonly argoSmartRouting: pulumi.Output; /** * When the Application was created. */ readonly createdOn: pulumi.Output; /** * The name and type of DNS record for the Spectrum application. */ readonly dns: pulumi.Output; /** * The anycast edge IP configuration for the hostname of this application. */ readonly edgeIps: pulumi.Output; /** * Enables IP Access Rules for this application. * Notes: Only available for TCP applications. */ readonly ipFirewall: pulumi.Output; /** * When the Application was last modified. */ readonly modifiedOn: pulumi.Output; /** * List of origin IP addresses. Array may contain multiple IP addresses for load balancing. */ readonly originDirects: pulumi.Output; /** * The name and type of DNS record for the Spectrum application. */ readonly originDns: pulumi.Output; /** * The destination port at the origin. Only specified in conjunction with origin_dns. May use an integer to specify a single origin port, for example `1000`, or a string to specify a range of origin ports, for example `"1000-2000"`. * Notes: If specifying a port range, the number of ports in the range must match the number of ports specified in the "protocol" field. */ readonly originPort: pulumi.Output; /** * The port configuration at Cloudflare's edge. May specify a single port, for example `"tcp/1000"`, or a range of ports, for example `"tcp/1000-2000"`. */ readonly protocol: pulumi.Output; /** * Enables Proxy Protocol to the origin. Refer to [Enable Proxy protocol](https://developers.cloudflare.com/spectrum/getting-started/proxy-protocol/) for implementation details on PROXY Protocol V1, PROXY Protocol V2, and Simple Proxy Protocol. * Available values: "off", "v1", "v2", "simple". */ readonly proxyProtocol: pulumi.Output; /** * The type of TLS termination associated with the application. * Available values: "off", "flexible", "full", "strict". */ readonly tls: pulumi.Output; /** * Determines how data travels from the edge to your origin. When set to "direct", Spectrum will send traffic directly to your origin, and the application's type is derived from the `protocol`. When set to "http" or "https", Spectrum will apply Cloudflare's HTTP/HTTPS features as it sends traffic to your origin, and the application type matches this property exactly. * Available values: "direct", "http", "https". */ readonly trafficType: pulumi.Output; /** * Zone identifier. */ 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 for this application. * Notes: Only available for TCP applications with trafficType set to "direct". */ argoSmartRouting?: pulumi.Input; /** * When the Application was created. */ createdOn?: pulumi.Input; /** * The name and type of DNS record for the Spectrum application. */ dns?: pulumi.Input; /** * The anycast edge IP configuration for the hostname of this application. */ edgeIps?: pulumi.Input; /** * Enables IP Access Rules for this application. * Notes: Only available for TCP applications. */ ipFirewall?: pulumi.Input; /** * When the Application was last modified. */ modifiedOn?: pulumi.Input; /** * List of origin IP addresses. Array may contain multiple IP addresses for load balancing. */ originDirects?: pulumi.Input[]>; /** * The name and type of DNS record for the Spectrum application. */ originDns?: pulumi.Input; /** * The destination port at the origin. Only specified in conjunction with origin_dns. May use an integer to specify a single origin port, for example `1000`, or a string to specify a range of origin ports, for example `"1000-2000"`. * Notes: If specifying a port range, the number of ports in the range must match the number of ports specified in the "protocol" field. */ originPort?: any; /** * The port configuration at Cloudflare's edge. May specify a single port, for example `"tcp/1000"`, or a range of ports, for example `"tcp/1000-2000"`. */ protocol?: pulumi.Input; /** * Enables Proxy Protocol to the origin. Refer to [Enable Proxy protocol](https://developers.cloudflare.com/spectrum/getting-started/proxy-protocol/) for implementation details on PROXY Protocol V1, PROXY Protocol V2, and Simple Proxy Protocol. * Available values: "off", "v1", "v2", "simple". */ proxyProtocol?: pulumi.Input; /** * The type of TLS termination associated with the application. * Available values: "off", "flexible", "full", "strict". */ tls?: pulumi.Input; /** * Determines how data travels from the edge to your origin. When set to "direct", Spectrum will send traffic directly to your origin, and the application's type is derived from the `protocol`. When set to "http" or "https", Spectrum will apply Cloudflare's HTTP/HTTPS features as it sends traffic to your origin, and the application type matches this property exactly. * Available values: "direct", "http", "https". */ trafficType?: pulumi.Input; /** * Zone identifier. */ zoneId?: pulumi.Input; } /** * The set of arguments for constructing a SpectrumApplication resource. */ export interface SpectrumApplicationArgs { /** * Enables Argo Smart Routing for this application. * Notes: Only available for TCP applications with trafficType set to "direct". */ argoSmartRouting?: pulumi.Input; /** * The name and type of DNS record for the Spectrum application. */ dns: pulumi.Input; /** * The anycast edge IP configuration for the hostname of this application. */ edgeIps?: pulumi.Input; /** * Enables IP Access Rules for this application. * Notes: Only available for TCP applications. */ ipFirewall?: pulumi.Input; /** * List of origin IP addresses. Array may contain multiple IP addresses for load balancing. */ originDirects?: pulumi.Input[]>; /** * The name and type of DNS record for the Spectrum application. */ originDns?: pulumi.Input; /** * The destination port at the origin. Only specified in conjunction with origin_dns. May use an integer to specify a single origin port, for example `1000`, or a string to specify a range of origin ports, for example `"1000-2000"`. * Notes: If specifying a port range, the number of ports in the range must match the number of ports specified in the "protocol" field. */ originPort?: any; /** * The port configuration at Cloudflare's edge. May specify a single port, for example `"tcp/1000"`, or a range of ports, for example `"tcp/1000-2000"`. */ protocol: pulumi.Input; /** * Enables Proxy Protocol to the origin. Refer to [Enable Proxy protocol](https://developers.cloudflare.com/spectrum/getting-started/proxy-protocol/) for implementation details on PROXY Protocol V1, PROXY Protocol V2, and Simple Proxy Protocol. * Available values: "off", "v1", "v2", "simple". */ proxyProtocol?: pulumi.Input; /** * The type of TLS termination associated with the application. * Available values: "off", "flexible", "full", "strict". */ tls?: pulumi.Input; /** * Determines how data travels from the edge to your origin. When set to "direct", Spectrum will send traffic directly to your origin, and the application's type is derived from the `protocol`. When set to "http" or "https", Spectrum will apply Cloudflare's HTTP/HTTPS features as it sends traffic to your origin, and the application type matches this property exactly. * Available values: "direct", "http", "https". */ trafficType?: pulumi.Input; /** * Zone identifier. */ zoneId: pulumi.Input; }