Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.compute.v1.kotlin
import com.pulumi.core.Output
import com.pulumi.googlenative.compute.v1.kotlin.outputs.ForwardingRuleServiceDirectoryRegistrationResponse
import com.pulumi.googlenative.compute.v1.kotlin.outputs.MetadataFilterResponse
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.googlenative.compute.v1.kotlin.outputs.ForwardingRuleServiceDirectoryRegistrationResponse.Companion.toKotlin as forwardingRuleServiceDirectoryRegistrationResponseToKotlin
import com.pulumi.googlenative.compute.v1.kotlin.outputs.MetadataFilterResponse.Companion.toKotlin as metadataFilterResponseToKotlin
/**
* Builder for [GlobalForwardingRule].
*/
@PulumiTagMarker
public class GlobalForwardingRuleResourceBuilder internal constructor() {
public var name: String? = null
public var args: GlobalForwardingRuleArgs = GlobalForwardingRuleArgs()
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 GlobalForwardingRuleArgsBuilder.() -> Unit) {
val builder = GlobalForwardingRuleArgsBuilder()
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(): GlobalForwardingRule {
val builtJavaResource =
com.pulumi.googlenative.compute.v1.GlobalForwardingRule(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return GlobalForwardingRule(builtJavaResource)
}
}
/**
* Creates a GlobalForwardingRule resource in the specified project using the data included in the request.
*/
public class GlobalForwardingRule internal constructor(
override val javaResource: com.pulumi.googlenative.compute.v1.GlobalForwardingRule,
) : KotlinCustomResource(javaResource, GlobalForwardingRuleMapper) {
/**
* This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By internal TCP/UDP load balancers, backend service-based network load balancers, and internal and external protocol forwarding. Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The ports, port_range, and allPorts fields are mutually exclusive.
*/
public val allPorts: Output
get() = javaResource.allPorts().applyValue({ args0 -> args0 })
/**
* This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If the field is set to TRUE, clients can access ILB from all regions. Otherwise only allows access from clients in the same region as the internal load balancer.
*/
public val allowGlobalAccess: Output
get() = javaResource.allowGlobalAccess().applyValue({ args0 -> args0 })
/**
* This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.
*/
public val allowPscGlobalAccess: Output
get() = javaResource.allowPscGlobalAccess().applyValue({ args0 -> args0 })
/**
* Identifies the backend service to which the forwarding rule sends traffic. Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must be omitted for all other load balancer types.
*/
public val backendService: Output
get() = javaResource.backendService().applyValue({ args0 -> args0 })
/**
* The URL for the corresponding base Forwarding Rule. By base Forwarding Rule, we mean the Forwarding Rule that has the same IP address, protocol, and port settings with the current Forwarding Rule, but without sourceIPRanges specified. Always empty if the current Forwarding Rule does not have sourceIPRanges specified.
*/
public val baseForwardingRule: Output
get() = javaResource.baseForwardingRule().applyValue({ args0 -> args0 })
/**
* Creation timestamp in RFC3339 text format.
*/
public val creationTimestamp: Output
get() = javaResource.creationTimestamp().applyValue({ args0 -> args0 })
/**
* An optional description of this resource. Provide this property when you create the resource.
*/
public val description: Output
get() = javaResource.description().applyValue({ args0 -> args0 })
/**
* Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ForwardingRule. Include the fingerprint in patch request to ensure that you do not overwrite changes that were applied from another concurrent request. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
*/
public val fingerprint: Output
get() = javaResource.fingerprint().applyValue({ args0 -> args0 })
/**
* IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.
*/
public val ipAddress: Output
get() = javaResource.ipAddress().applyValue({ args0 -> args0 })
/**
* The IP protocol to which this rule applies. For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. The valid IP protocols are different for different load balancing products as described in [Load balancing features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
*/
public val ipProtocol: Output
get() = javaResource.ipProtocol().applyValue({ args0 -> args0 })
/**
* The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.
*/
public val ipVersion: Output
get() = javaResource.ipVersion().applyValue({ args0 -> args0 })
/**
* Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a PacketMirroring rule applies to them. This can only be set to true for load balancers that have their loadBalancingScheme set to INTERNAL.
*/
public val isMirroringCollector: Output
get() = javaResource.isMirroringCollector().applyValue({ args0 -> args0 })
/**
* Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
*/
public val kind: Output
get() = javaResource.kind().applyValue({ args0 -> args0 })
/**
* A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
*/
public val labelFingerprint: Output
get() = javaResource.labelFingerprint().applyValue({ args0 -> args0 })
/**
* Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
*/
public val labels: Output