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

com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeter.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.Boolean
import kotlin.String
import kotlin.Suppress

/**
 *
 * @property createTime (Output)
 * Time the AccessPolicy was created in UTC.
 * @property description Description of the ServicePerimeter and its use. Does not affect
 * behavior.
 * @property name Resource name for the ServicePerimeter. The short_name component must
 * begin with a letter and only include alphanumeric and '_'.
 * Format: accessPolicies/{policy_id}/servicePerimeters/{short_name}
 * @property perimeterType Specifies the type of the Perimeter. There are two types: regular and
 * bridge. Regular Service Perimeter contains resources, access levels,
 * and restricted services. Every resource can be in at most
 * ONE regular Service Perimeter.
 * In addition to being in a regular service perimeter, a resource can also
 * be in zero or more perimeter bridges. A perimeter bridge only contains
 * resources. Cross project operations are permitted if all effected
 * resources share some perimeter (whether bridge or regular). Perimeter
 * Bridge does not contain access levels or services: those are governed
 * entirely by the regular perimeter that resource is in.
 * Perimeter Bridges are typically useful when building more complex
 * topologies with many independent perimeters that need to share some data
 * with a common perimeter, but should not be able to share data among
 * themselves.
 * Default value is `PERIMETER_TYPE_REGULAR`.
 * Possible values are: `PERIMETER_TYPE_REGULAR`, `PERIMETER_TYPE_BRIDGE`.
 * @property spec Proposed (or dry run) ServicePerimeter configuration.
 * This configuration allows to specify and test ServicePerimeter configuration
 * without enforcing actual access restrictions. Only allowed to be set when
 * the `useExplicitDryRunSpec` flag is set.
 * Structure is documented below.
 * @property status ServicePerimeter configuration. Specifies sets of resources,
 * restricted services and access levels that determine
 * perimeter content and boundaries.
 * Structure is documented below.
 * @property title Human readable title. Must be unique within the Policy.
 * @property updateTime (Output)
 * Time the AccessPolicy was updated in UTC.
 * @property useExplicitDryRunSpec Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists
 * for all Service Perimeters, and that spec is identical to the status for those
 * Service Perimeters. When this flag is set, it inhibits the generation of the
 * implicit spec, thereby allowing the user to explicitly provide a
 * configuration ("spec") to use in a dry-run version of the Service Perimeter.
 * This allows the user to test changes to the enforced config ("status") without
 * actually enforcing them. This testing is done through analyzing the differences
 * between currently enforced and suggested restrictions. useExplicitDryRunSpec must
 * bet set to True if any of the fields in the spec are set to non-default values.
 */
public data class ServicePerimetersServicePerimeter(
    public val createTime: String? = null,
    public val description: String? = null,
    public val name: String,
    public val perimeterType: String? = null,
    public val spec: ServicePerimetersServicePerimeterSpec? = null,
    public val status: ServicePerimetersServicePerimeterStatus? = null,
    public val title: String,
    public val updateTime: String? = null,
    public val useExplicitDryRunSpec: Boolean? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.accesscontextmanager.outputs.ServicePerimetersServicePerimeter): ServicePerimetersServicePerimeter = ServicePerimetersServicePerimeter(
            createTime = javaType.createTime().map({ args0 -> args0 }).orElse(null),
            description = javaType.description().map({ args0 -> args0 }).orElse(null),
            name = javaType.name(),
            perimeterType = javaType.perimeterType().map({ args0 -> args0 }).orElse(null),
            spec = javaType.spec().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeterSpec.Companion.toKotlin(args0)
                })
            }).orElse(null),
            status = javaType.status().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.accesscontextmanager.kotlin.outputs.ServicePerimetersServicePerimeterStatus.Companion.toKotlin(args0)
                })
            }).orElse(null),
            title = javaType.title(),
            updateTime = javaType.updateTime().map({ args0 -> args0 }).orElse(null),
            useExplicitDryRunSpec = javaType.useExplicitDryRunSpec().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy