![JAR search and dependency download from the Maven repository](/logo.png)
com.pulumi.cloudflare.kotlin.SpectrumApplication.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-cloudflare-kotlin Show documentation
Show all versions of pulumi-cloudflare-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.cloudflare.kotlin
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationDns
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationEdgeIps
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationOriginDns
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationOriginPortRange
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationDns.Companion.toKotlin as spectrumApplicationDnsToKotlin
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationEdgeIps.Companion.toKotlin as spectrumApplicationEdgeIpsToKotlin
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationOriginDns.Companion.toKotlin as spectrumApplicationOriginDnsToKotlin
import com.pulumi.cloudflare.kotlin.outputs.SpectrumApplicationOriginPortRange.Companion.toKotlin as spectrumApplicationOriginPortRangeToKotlin
/**
* Builder for [SpectrumApplication].
*/
@PulumiTagMarker
public class SpectrumApplicationResourceBuilder internal constructor() {
public var name: String? = null
public var args: SpectrumApplicationArgs = SpectrumApplicationArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend SpectrumApplicationArgsBuilder.() -> Unit) {
val builder = SpectrumApplicationArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): SpectrumApplication {
val builtJavaResource = com.pulumi.cloudflare.SpectrumApplication(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return SpectrumApplication(builtJavaResource)
}
}
/**
* 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 cloudflare from "@pulumi/cloudflare";
* const example = new cloudflare.SpectrumApplication("example", {
* zoneId: "0da42c8d2132a9ddaf714f9e7c920711",
* protocol: "tcp/22",
* trafficType: "direct",
* dns: {
* type: "CNAME",
* name: "ssh.example.com",
* },
* originDirects: ["tcp://192.0.2.1:22"],
* edgeIps: {
* type: "static",
* ips: [
* "203.0.113.1",
* "203.0.113.2",
* ],
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_cloudflare as cloudflare
* example = cloudflare.SpectrumApplication("example",
* zone_id="0da42c8d2132a9ddaf714f9e7c920711",
* protocol="tcp/22",
* traffic_type="direct",
* dns={
* "type": "CNAME",
* "name": "ssh.example.com",
* },
* origin_directs=["tcp://192.0.2.1:22"],
* edge_ips={
* "type": "static",
* "ips": [
* "203.0.113.1",
* "203.0.113.2",
* ],
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Cloudflare = Pulumi.Cloudflare;
* return await Deployment.RunAsync(() =>
* {
* var example = new Cloudflare.SpectrumApplication("example", new()
* {
* ZoneId = "0da42c8d2132a9ddaf714f9e7c920711",
* Protocol = "tcp/22",
* TrafficType = "direct",
* Dns = new Cloudflare.Inputs.SpectrumApplicationDnsArgs
* {
* Type = "CNAME",
* Name = "ssh.example.com",
* },
* OriginDirects = new[]
* {
* "tcp://192.0.2.1:22",
* },
* EdgeIps = new Cloudflare.Inputs.SpectrumApplicationEdgeIpsArgs
* {
* Type = "static",
* Ips = new[]
* {
* "203.0.113.1",
* "203.0.113.2",
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-cloudflare/sdk/v5/go/cloudflare"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := cloudflare.NewSpectrumApplication(ctx, "example", &cloudflare.SpectrumApplicationArgs{
* ZoneId: pulumi.String("0da42c8d2132a9ddaf714f9e7c920711"),
* Protocol: pulumi.String("tcp/22"),
* TrafficType: pulumi.String("direct"),
* Dns: &cloudflare.SpectrumApplicationDnsArgs{
* Type: pulumi.String("CNAME"),
* Name: pulumi.String("ssh.example.com"),
* },
* OriginDirects: pulumi.StringArray{
* pulumi.String("tcp://192.0.2.1:22"),
* },
* EdgeIps: &cloudflare.SpectrumApplicationEdgeIpsArgs{
* Type: pulumi.String("static"),
* Ips: pulumi.StringArray{
* pulumi.String("203.0.113.1"),
* pulumi.String("203.0.113.2"),
* },
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.cloudflare.SpectrumApplication;
* import com.pulumi.cloudflare.SpectrumApplicationArgs;
* import com.pulumi.cloudflare.inputs.SpectrumApplicationDnsArgs;
* import com.pulumi.cloudflare.inputs.SpectrumApplicationEdgeIpsArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var example = new SpectrumApplication("example", SpectrumApplicationArgs.builder()
* .zoneId("0da42c8d2132a9ddaf714f9e7c920711")
* .protocol("tcp/22")
* .trafficType("direct")
* .dns(SpectrumApplicationDnsArgs.builder()
* .type("CNAME")
* .name("ssh.example.com")
* .build())
* .originDirects("tcp://192.0.2.1:22")
* .edgeIps(SpectrumApplicationEdgeIpsArgs.builder()
* .type("static")
* .ips(
* "203.0.113.1",
* "203.0.113.2")
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: cloudflare:SpectrumApplication
* properties:
* zoneId: 0da42c8d2132a9ddaf714f9e7c920711
* protocol: tcp/22
* trafficType: direct
* dns:
* type: CNAME
* name: ssh.example.com
* originDirects:
* - tcp://192.0.2.1:22
* edgeIps:
* type: static
* ips:
* - 203.0.113.1
* - 203.0.113.2
* ```
*
* ## Import
* ```sh
* $ pulumi import cloudflare:index/spectrumApplication:SpectrumApplication example /
* ```
*/
public class SpectrumApplication internal constructor(
override val javaResource: com.pulumi.cloudflare.SpectrumApplication,
) : KotlinCustomResource(javaResource, SpectrumApplicationMapper) {
/**
* Enables Argo Smart Routing.
*/
public val argoSmartRouting: Output
get() = javaResource.argoSmartRouting().applyValue({ args0 -> args0 })
/**
* The name and type of DNS record for the Spectrum application.
*/
public val dns: Output
get() = javaResource.dns().applyValue({ args0 ->
args0.let({ args0 ->
spectrumApplicationDnsToKotlin(args0)
})
})
/**
* The anycast edge IP configuration for the hostname of this application.
*/
public val edgeIps: Output
get() = javaResource.edgeIps().applyValue({ args0 ->
args0.let({ args0 ->
spectrumApplicationEdgeIpsToKotlin(args0)
})
})
/**
* Enables the IP Firewall for this application.
*/
public val ipFirewall: Output
get() = javaResource.ipFirewall().applyValue({ args0 -> args0 })
/**
* A list of destination addresses to the origin. e.g. `tcp://192.0.2.1:22`.
*/
public val originDirects: Output>?
get() = javaResource.originDirects().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 -> args0 })
}).orElse(null)
})
/**
* A destination DNS addresses to the origin.
*/
public val originDns: Output?
get() = javaResource.originDns().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
spectrumApplicationOriginDnsToKotlin(args0)
})
}).orElse(null)
})
/**
* Origin port to proxy traffice to. Conflicts with `origin_port_range`.
*/
public val originPort: Output?
get() = javaResource.originPort().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Origin port range to proxy traffice to. When using a range, the protocol field must also specify a range, e.g. `tcp/22-23`. Conflicts with `origin_port`.
*/
public val originPortRange: Output?
get() = javaResource.originPortRange().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> spectrumApplicationOriginPortRangeToKotlin(args0) })
}).orElse(null)
})
/**
* The port configuration at Cloudflare's edge. e.g. `tcp/22`.
*/
public val protocol: Output
get() = javaResource.protocol().applyValue({ args0 -> args0 })
/**
* Enables a proxy protocol to the origin. Available values: `off`, `v1`, `v2`, `simple`.
*/
public val proxyProtocol: Output
get() = javaResource.proxyProtocol().applyValue({ args0 -> args0 })
/**
* TLS configuration option for Cloudflare to connect to your origin. Available values: `off`, `flexible`, `full`, `strict`.
*/
public val tls: Output
get() = javaResource.tls().applyValue({ args0 -> args0 })
/**
* Sets application type. Available values: `direct`, `http`, `https`.
*/
public val trafficType: Output
get() = javaResource.trafficType().applyValue({ args0 -> args0 })
/**
* The zone identifier to target for the resource.
*/
public val zoneId: Output
get() = javaResource.zoneId().applyValue({ args0 -> args0 })
}
public object SpectrumApplicationMapper : ResourceMapper {
override fun supportsMappingOfType(javaResource: Resource): Boolean =
com.pulumi.cloudflare.SpectrumApplication::class == javaResource::class
override fun map(javaResource: Resource): SpectrumApplication = SpectrumApplication(
javaResource
as com.pulumi.cloudflare.SpectrumApplication,
)
}
/**
* @see [SpectrumApplication].
* @param name The _unique_ name of the resulting resource.
* @param block Builder for [SpectrumApplication].
*/
public suspend fun spectrumApplication(
name: String,
block: suspend SpectrumApplicationResourceBuilder.() -> Unit,
): SpectrumApplication {
val builder = SpectrumApplicationResourceBuilder()
builder.name(name)
block(builder)
return builder.build()
}
/**
* @see [SpectrumApplication].
* @param name The _unique_ name of the resulting resource.
*/
public fun spectrumApplication(name: String): SpectrumApplication {
val builder = SpectrumApplicationResourceBuilder()
builder.name(name)
return builder.build()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy