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

com.pulumi.gcp.orgpolicy.kotlin.outputs.PolicySpec.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.orgpolicy.kotlin.outputs

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

/**
 *
 * @property etag An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
 * @property inheritFromParent Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
 * @property reset Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
 * @property rules Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
 * @property updateTime Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
 */
public data class PolicySpec(
    public val etag: String? = null,
    public val inheritFromParent: Boolean? = null,
    public val reset: Boolean? = null,
    public val rules: List? = null,
    public val updateTime: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.orgpolicy.outputs.PolicySpec): PolicySpec =
            PolicySpec(
                etag = javaType.etag().map({ args0 -> args0 }).orElse(null),
                inheritFromParent = javaType.inheritFromParent().map({ args0 -> args0 }).orElse(null),
                reset = javaType.reset().map({ args0 -> args0 }).orElse(null),
                rules = javaType.rules().map({ args0 ->
                    args0.let({ args0 ->
                        com.pulumi.gcp.orgpolicy.kotlin.outputs.PolicySpecRule.Companion.toKotlin(args0)
                    })
                }),
                updateTime = javaType.updateTime().map({ args0 -> args0 }).orElse(null),
            )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy