All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeterStatus.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.accesscontextmanager.kotlin.outputs

import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @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 ServicePerimetersServicePerimeterStatus(
    public val accessLevels: List? = null,
    public val egressPolicies: List? = null,
    public val ingressPolicies: List? = null,
    public val resources: List? = null,
    public val restrictedServices: List? = null,
    public val vpcAccessibleServices: ServicePerimetersServicePerimeterStatusVpcAccessibleServices? =
        null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.accesscontextmanager.outputs.ServicePerimetersServicePerimeterStatus): ServicePerimetersServicePerimeterStatus = ServicePerimetersServicePerimeterStatus(
            accessLevels = javaType.accessLevels().map({ args0 -> args0 }),
            egressPolicies = javaType.egressPolicies().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeterStatusEgressPolicy.Companion.toKotlin(args0)
                })
            }),
            ingressPolicies = javaType.ingressPolicies().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeterStatusIngressPolicy.Companion.toKotlin(args0)
                })
            }),
            resources = javaType.resources().map({ args0 -> args0 }),
            restrictedServices = javaType.restrictedServices().map({ args0 -> args0 }),
            vpcAccessibleServices = javaType.vpcAccessibleServices().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeterStatusVpcAccessibleServices.Companion.toKotlin(args0)
                })
            }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy