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.
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.gcp.accesscontextmanager.kotlin.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.accesscontextmanager.inputs.ServicePerimeterSpecArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property accessLevels A list of AccessLevel resource names that allow resources within
* the ServicePerimeter to be accessed from the internet.
* AccessLevels listed must be in the same policy as this
* ServicePerimeter. Referencing a nonexistent AccessLevel is a
* syntax error. If no AccessLevel names are listed, resources within
* the perimeter can only be accessed via GCP calls with request
* origins within the perimeter. For Service Perimeter Bridge, must
* be empty.
* Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
* @property egressPolicies List of EgressPolicies to apply to the perimeter. A perimeter may
* have multiple EgressPolicies, each of which is evaluated separately.
* Access is granted if any EgressPolicy grants it. Must be empty for
* a perimeter bridge.
* Structure is documented below.
* @property ingressPolicies List of `IngressPolicies` to apply to the perimeter. A perimeter may
* have multiple `IngressPolicies`, each of which is evaluated
* separately. Access is granted if any `Ingress Policy` grants it.
* Must be empty for a perimeter bridge.
* Structure is documented below.
* @property resources A list of GCP resources that are inside of the service perimeter.
* Currently only projects are allowed.
* Format: projects/{project_number}
* @property restrictedServices GCP services that are subject to the Service Perimeter
* restrictions. Must contain a list of services. For example, if
* `storage.googleapis.com` is specified, access to the storage
* buckets inside the perimeter must meet the perimeter's access
* restrictions.
* @property vpcAccessibleServices Specifies how APIs are allowed to communicate within the Service
* Perimeter.
* Structure is documented below.
*/
public data class ServicePerimeterSpecArgs(
public val accessLevels: Output>? = null,
public val egressPolicies: Output>? = null,
public val ingressPolicies: Output>? = null,
public val resources: Output>? = null,
public val restrictedServices: Output>? = null,
public val vpcAccessibleServices: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gcp.accesscontextmanager.inputs.ServicePerimeterSpecArgs =
com.pulumi.gcp.accesscontextmanager.inputs.ServicePerimeterSpecArgs.builder()
.accessLevels(accessLevels?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.egressPolicies(
egressPolicies?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.ingressPolicies(
ingressPolicies?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.resources(resources?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.restrictedServices(restrictedServices?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.vpcAccessibleServices(
vpcAccessibleServices?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
).build()
}
/**
* Builder for [ServicePerimeterSpecArgs].
*/
@PulumiTagMarker
public class ServicePerimeterSpecArgsBuilder internal constructor() {
private var accessLevels: Output>? = null
private var egressPolicies: Output>? = null
private var ingressPolicies: Output>? = null
private var resources: Output>? = null
private var restrictedServices: Output>? = null
private var vpcAccessibleServices: Output? = null
/**
* @param value A list of AccessLevel resource names that allow resources within
* the ServicePerimeter to be accessed from the internet.
* AccessLevels listed must be in the same policy as this
* ServicePerimeter. Referencing a nonexistent AccessLevel is a
* syntax error. If no AccessLevel names are listed, resources within
* the perimeter can only be accessed via GCP calls with request
* origins within the perimeter. For Service Perimeter Bridge, must
* be empty.
* Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
*/
@JvmName("mrhpfpmaxkkyuhpf")
public suspend fun accessLevels(`value`: Output>) {
this.accessLevels = value
}
@JvmName("rhneohpbxopdjfin")
public suspend fun accessLevels(vararg values: Output) {
this.accessLevels = Output.all(values.asList())
}
/**
* @param values A list of AccessLevel resource names that allow resources within
* the ServicePerimeter to be accessed from the internet.
* AccessLevels listed must be in the same policy as this
* ServicePerimeter. Referencing a nonexistent AccessLevel is a
* syntax error. If no AccessLevel names are listed, resources within
* the perimeter can only be accessed via GCP calls with request
* origins within the perimeter. For Service Perimeter Bridge, must
* be empty.
* Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
*/
@JvmName("lxwhnpepbqgmcnhy")
public suspend fun accessLevels(values: List