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

com.pulumi.azurenative.security.kotlin.inputs.GcpOrganizationalDataOrganizationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.security.kotlin.inputs

import com.pulumi.azurenative.security.inputs.GcpOrganizationalDataOrganizationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The gcpOrganization data for the parent account
 * @property excludedProjectNumbers If the multi cloud account is of membership type organization, list of accounts excluded from offering
 * @property organizationMembershipType The multi cloud account's membership type in the organization
 * Expected value is 'Organization'.
 * @property serviceAccountEmailAddress The service account email address which represents the organization level permissions container.
 * @property workloadIdentityProviderId The GCP workload identity provider id which represents the permissions required to auto provision security connectors
 */
public data class GcpOrganizationalDataOrganizationArgs(
    public val excludedProjectNumbers: Output>? = null,
    public val organizationMembershipType: Output,
    public val serviceAccountEmailAddress: Output? = null,
    public val workloadIdentityProviderId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.security.inputs.GcpOrganizationalDataOrganizationArgs =
        com.pulumi.azurenative.security.inputs.GcpOrganizationalDataOrganizationArgs.builder()
            .excludedProjectNumbers(
                excludedProjectNumbers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .organizationMembershipType(organizationMembershipType.applyValue({ args0 -> args0 }))
            .serviceAccountEmailAddress(serviceAccountEmailAddress?.applyValue({ args0 -> args0 }))
            .workloadIdentityProviderId(workloadIdentityProviderId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [GcpOrganizationalDataOrganizationArgs].
 */
@PulumiTagMarker
public class GcpOrganizationalDataOrganizationArgsBuilder internal constructor() {
    private var excludedProjectNumbers: Output>? = null

    private var organizationMembershipType: Output? = null

    private var serviceAccountEmailAddress: Output? = null

    private var workloadIdentityProviderId: Output? = null

    /**
     * @param value If the multi cloud account is of membership type organization, list of accounts excluded from offering
     */
    @JvmName("klojsfnhkndugsum")
    public suspend fun excludedProjectNumbers(`value`: Output>) {
        this.excludedProjectNumbers = value
    }

    @JvmName("afhlvbhgfkwaudcm")
    public suspend fun excludedProjectNumbers(vararg values: Output) {
        this.excludedProjectNumbers = Output.all(values.asList())
    }

    /**
     * @param values If the multi cloud account is of membership type organization, list of accounts excluded from offering
     */
    @JvmName("jxmskypgdfnmanms")
    public suspend fun excludedProjectNumbers(values: List>) {
        this.excludedProjectNumbers = Output.all(values)
    }

    /**
     * @param value The multi cloud account's membership type in the organization
     * Expected value is 'Organization'.
     */
    @JvmName("fdrfatfrcbevglqs")
    public suspend fun organizationMembershipType(`value`: Output) {
        this.organizationMembershipType = value
    }

    /**
     * @param value The service account email address which represents the organization level permissions container.
     */
    @JvmName("hsjrffgrslfwulkh")
    public suspend fun serviceAccountEmailAddress(`value`: Output) {
        this.serviceAccountEmailAddress = value
    }

    /**
     * @param value The GCP workload identity provider id which represents the permissions required to auto provision security connectors
     */
    @JvmName("hetuirdqlmmixfxa")
    public suspend fun workloadIdentityProviderId(`value`: Output) {
        this.workloadIdentityProviderId = value
    }

    /**
     * @param value If the multi cloud account is of membership type organization, list of accounts excluded from offering
     */
    @JvmName("fwhgayhhbktddwpd")
    public suspend fun excludedProjectNumbers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedProjectNumbers = mapped
    }

    /**
     * @param values If the multi cloud account is of membership type organization, list of accounts excluded from offering
     */
    @JvmName("dqexrfssiunjakts")
    public suspend fun excludedProjectNumbers(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedProjectNumbers = mapped
    }

    /**
     * @param value The multi cloud account's membership type in the organization
     * Expected value is 'Organization'.
     */
    @JvmName("avuhmdbkqkedbiqp")
    public suspend fun organizationMembershipType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.organizationMembershipType = mapped
    }

    /**
     * @param value The service account email address which represents the organization level permissions container.
     */
    @JvmName("snvgsqjeolfwpsbw")
    public suspend fun serviceAccountEmailAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceAccountEmailAddress = mapped
    }

    /**
     * @param value The GCP workload identity provider id which represents the permissions required to auto provision security connectors
     */
    @JvmName("klunimpihiocbcmo")
    public suspend fun workloadIdentityProviderId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workloadIdentityProviderId = mapped
    }

    internal fun build(): GcpOrganizationalDataOrganizationArgs =
        GcpOrganizationalDataOrganizationArgs(
            excludedProjectNumbers = excludedProjectNumbers,
            organizationMembershipType = organizationMembershipType ?: throw
                PulumiNullFieldException("organizationMembershipType"),
            serviceAccountEmailAddress = serviceAccountEmailAddress,
            workloadIdentityProviderId = workloadIdentityProviderId,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy