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

com.pulumi.googlenative.metastore.v1beta.kotlin.ServiceArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.googlenative.metastore.v1beta.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.metastore.v1beta.ServiceArgs.builder
import com.pulumi.googlenative.metastore.v1beta.kotlin.enums.ServiceDatabaseType
import com.pulumi.googlenative.metastore.v1beta.kotlin.enums.ServiceReleaseChannel
import com.pulumi.googlenative.metastore.v1beta.kotlin.enums.ServiceTier
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.EncryptionConfigArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.EncryptionConfigArgsBuilder
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.HiveMetastoreConfigArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.HiveMetastoreConfigArgsBuilder
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.MaintenanceWindowArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.MaintenanceWindowArgsBuilder
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.MetadataIntegrationArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.MetadataIntegrationArgsBuilder
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.NetworkConfigArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.NetworkConfigArgsBuilder
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.ScalingConfigArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.ScalingConfigArgsBuilder
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.TelemetryConfigArgs
import com.pulumi.googlenative.metastore.v1beta.kotlin.inputs.TelemetryConfigArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Creates a metastore service in a project and location.
 * @property databaseType Immutable. The database type that the Metastore service stores its data.
 * @property encryptionConfig Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
 * @property hiveMetastoreConfig Configuration information specific to running Hive metastore software as the metastore service.
 * @property labels User-defined labels for the metastore service.
 * @property location
 * @property maintenanceWindow The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time. Maintenance window is not needed for services with the SPANNER database type.
 * @property metadataIntegration The setting that defines how metastore metadata should be integrated with external services and systems.
 * @property name Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.
 * @property network Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
 * @property networkConfig The configuration specifying the network settings for the Dataproc Metastore service.
 * @property port The TCP port at which the metastore service is reached. Default: 9083.
 * @property project
 * @property releaseChannel Immutable. The release channel of the service. If unspecified, defaults to STABLE.
 * @property requestId Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
 * @property scalingConfig Scaling configuration of the metastore service.
 * @property serviceId Required. The ID of the metastore service, which is used as the final component of the metastore service's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
 * @property telemetryConfig The configuration specifying telemetry settings for the Dataproc Metastore service. If unspecified defaults to JSON.
 * @property tier The tier of the service.
 */
public data class ServiceArgs(
    public val databaseType: Output? = null,
    public val encryptionConfig: Output? = null,
    public val hiveMetastoreConfig: Output? = null,
    public val labels: Output>? = null,
    public val location: Output? = null,
    public val maintenanceWindow: Output? = null,
    public val metadataIntegration: Output? = null,
    public val name: Output? = null,
    public val network: Output? = null,
    public val networkConfig: Output? = null,
    public val port: Output? = null,
    public val project: Output? = null,
    public val releaseChannel: Output? = null,
    public val requestId: Output? = null,
    public val scalingConfig: Output? = null,
    public val serviceId: Output? = null,
    public val telemetryConfig: Output? = null,
    public val tier: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.metastore.v1beta.ServiceArgs =
        com.pulumi.googlenative.metastore.v1beta.ServiceArgs.builder()
            .databaseType(databaseType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .encryptionConfig(encryptionConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .hiveMetastoreConfig(
                hiveMetastoreConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .location(location?.applyValue({ args0 -> args0 }))
            .maintenanceWindow(maintenanceWindow?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .metadataIntegration(
                metadataIntegration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .network(network?.applyValue({ args0 -> args0 }))
            .networkConfig(networkConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .port(port?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .releaseChannel(releaseChannel?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .requestId(requestId?.applyValue({ args0 -> args0 }))
            .scalingConfig(scalingConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .serviceId(serviceId?.applyValue({ args0 -> args0 }))
            .telemetryConfig(telemetryConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tier(tier?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [ServiceArgs].
 */
@PulumiTagMarker
public class ServiceArgsBuilder internal constructor() {
    private var databaseType: Output? = null

    private var encryptionConfig: Output? = null

    private var hiveMetastoreConfig: Output? = null

    private var labels: Output>? = null

    private var location: Output? = null

    private var maintenanceWindow: Output? = null

    private var metadataIntegration: Output? = null

    private var name: Output? = null

    private var network: Output? = null

    private var networkConfig: Output? = null

    private var port: Output? = null

    private var project: Output? = null

    private var releaseChannel: Output? = null

    private var requestId: Output? = null

    private var scalingConfig: Output? = null

    private var serviceId: Output? = null

    private var telemetryConfig: Output? = null

    private var tier: Output? = null

    /**
     * @param value Immutable. The database type that the Metastore service stores its data.
     */
    @JvmName("sretmsrsqojlribl")
    public suspend fun databaseType(`value`: Output) {
        this.databaseType = value
    }

    /**
     * @param value Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
     */
    @JvmName("ympnldjgkoccpwjq")
    public suspend fun encryptionConfig(`value`: Output) {
        this.encryptionConfig = value
    }

    /**
     * @param value Configuration information specific to running Hive metastore software as the metastore service.
     */
    @JvmName("srsbtlinfsadvkdc")
    public suspend fun hiveMetastoreConfig(`value`: Output) {
        this.hiveMetastoreConfig = value
    }

    /**
     * @param value User-defined labels for the metastore service.
     */
    @JvmName("btofrfptypcntxgh")
    public suspend fun labels(`value`: Output>) {
        this.labels = value
    }

    /**
     * @param value
     */
    @JvmName("cmpjhliiuobyxous")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time. Maintenance window is not needed for services with the SPANNER database type.
     */
    @JvmName("yvgrrhvueameihmb")
    public suspend fun maintenanceWindow(`value`: Output) {
        this.maintenanceWindow = value
    }

    /**
     * @param value The setting that defines how metastore metadata should be integrated with external services and systems.
     */
    @JvmName("uvejjvndgqxrqkrb")
    public suspend fun metadataIntegration(`value`: Output) {
        this.metadataIntegration = value
    }

    /**
     * @param value Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.
     */
    @JvmName("wxctdnrlhdqcyfuj")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
     */
    @JvmName("ofgvryxecjiicdon")
    public suspend fun network(`value`: Output) {
        this.network = value
    }

    /**
     * @param value The configuration specifying the network settings for the Dataproc Metastore service.
     */
    @JvmName("koeyqofhklpxhwov")
    public suspend fun networkConfig(`value`: Output) {
        this.networkConfig = value
    }

    /**
     * @param value The TCP port at which the metastore service is reached. Default: 9083.
     */
    @JvmName("bxweqnwnlrykosqv")
    public suspend fun port(`value`: Output) {
        this.port = value
    }

    /**
     * @param value
     */
    @JvmName("oprwjqgydgopkoag")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value Immutable. The release channel of the service. If unspecified, defaults to STABLE.
     */
    @JvmName("mmbdbhvclubwwqkf")
    public suspend fun releaseChannel(`value`: Output) {
        this.releaseChannel = value
    }

    /**
     * @param value Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
     */
    @JvmName("yrixrywhccppjxim")
    public suspend fun requestId(`value`: Output) {
        this.requestId = value
    }

    /**
     * @param value Scaling configuration of the metastore service.
     */
    @JvmName("nbcbyjatqothipje")
    public suspend fun scalingConfig(`value`: Output) {
        this.scalingConfig = value
    }

    /**
     * @param value Required. The ID of the metastore service, which is used as the final component of the metastore service's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
     */
    @JvmName("wquqpugsbtqiifvy")
    public suspend fun serviceId(`value`: Output) {
        this.serviceId = value
    }

    /**
     * @param value The configuration specifying telemetry settings for the Dataproc Metastore service. If unspecified defaults to JSON.
     */
    @JvmName("yfdimpegnsuhqelw")
    public suspend fun telemetryConfig(`value`: Output) {
        this.telemetryConfig = value
    }

    /**
     * @param value The tier of the service.
     */
    @JvmName("ewpovwbgxrwikmjc")
    public suspend fun tier(`value`: Output) {
        this.tier = value
    }

    /**
     * @param value Immutable. The database type that the Metastore service stores its data.
     */
    @JvmName("tocabeujlpiwnogr")
    public suspend fun databaseType(`value`: ServiceDatabaseType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.databaseType = mapped
    }

    /**
     * @param value Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
     */
    @JvmName("cllmkaulxtjwopho")
    public suspend fun encryptionConfig(`value`: EncryptionConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptionConfig = mapped
    }

    /**
     * @param argument Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
     */
    @JvmName("oaiwhappiwvbwlef")
    public suspend fun encryptionConfig(argument: suspend EncryptionConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EncryptionConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encryptionConfig = mapped
    }

    /**
     * @param value Configuration information specific to running Hive metastore software as the metastore service.
     */
    @JvmName("bjwqolqutikmeekh")
    public suspend fun hiveMetastoreConfig(`value`: HiveMetastoreConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hiveMetastoreConfig = mapped
    }

    /**
     * @param argument Configuration information specific to running Hive metastore software as the metastore service.
     */
    @JvmName("rbaihtpurvwuorsh")
    public suspend fun hiveMetastoreConfig(argument: suspend HiveMetastoreConfigArgsBuilder.() -> Unit) {
        val toBeMapped = HiveMetastoreConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.hiveMetastoreConfig = mapped
    }

    /**
     * @param value User-defined labels for the metastore service.
     */
    @JvmName("fbyijbankwllrhah")
    public suspend fun labels(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param values User-defined labels for the metastore service.
     */
    @JvmName("gjdllyqnjutvqyvs")
    public fun labels(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param value
     */
    @JvmName("hcymqsngtiqugrqg")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time. Maintenance window is not needed for services with the SPANNER database type.
     */
    @JvmName("cfvprunmimaumnvb")
    public suspend fun maintenanceWindow(`value`: MaintenanceWindowArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maintenanceWindow = mapped
    }

    /**
     * @param argument The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time. Maintenance window is not needed for services with the SPANNER database type.
     */
    @JvmName("lxsjyqeevgjrixpr")
    public suspend fun maintenanceWindow(argument: suspend MaintenanceWindowArgsBuilder.() -> Unit) {
        val toBeMapped = MaintenanceWindowArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.maintenanceWindow = mapped
    }

    /**
     * @param value The setting that defines how metastore metadata should be integrated with external services and systems.
     */
    @JvmName("nuiruxjiyewefxjo")
    public suspend fun metadataIntegration(`value`: MetadataIntegrationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadataIntegration = mapped
    }

    /**
     * @param argument The setting that defines how metastore metadata should be integrated with external services and systems.
     */
    @JvmName("xupaprspmdmsbkbp")
    public suspend fun metadataIntegration(argument: suspend MetadataIntegrationArgsBuilder.() -> Unit) {
        val toBeMapped = MetadataIntegrationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.metadataIntegration = mapped
    }

    /**
     * @param value Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.
     */
    @JvmName("pmvetfotmlaneasp")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
     */
    @JvmName("lgglfshsiwvrairm")
    public suspend fun network(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.network = mapped
    }

    /**
     * @param value The configuration specifying the network settings for the Dataproc Metastore service.
     */
    @JvmName("xoaqcbrisoijjmmm")
    public suspend fun networkConfig(`value`: NetworkConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkConfig = mapped
    }

    /**
     * @param argument The configuration specifying the network settings for the Dataproc Metastore service.
     */
    @JvmName("vxiqnjtejvfwmynh")
    public suspend fun networkConfig(argument: suspend NetworkConfigArgsBuilder.() -> Unit) {
        val toBeMapped = NetworkConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networkConfig = mapped
    }

    /**
     * @param value The TCP port at which the metastore service is reached. Default: 9083.
     */
    @JvmName("lcjwcjvgaregipaf")
    public suspend fun port(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.port = mapped
    }

    /**
     * @param value
     */
    @JvmName("nxcytnskerdvrlcb")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value Immutable. The release channel of the service. If unspecified, defaults to STABLE.
     */
    @JvmName("uehuaaangfqjtkeh")
    public suspend fun releaseChannel(`value`: ServiceReleaseChannel?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.releaseChannel = mapped
    }

    /**
     * @param value Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
     */
    @JvmName("xgmhkimvvlrnpnat")
    public suspend fun requestId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestId = mapped
    }

    /**
     * @param value Scaling configuration of the metastore service.
     */
    @JvmName("ljyatjtepuatokch")
    public suspend fun scalingConfig(`value`: ScalingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scalingConfig = mapped
    }

    /**
     * @param argument Scaling configuration of the metastore service.
     */
    @JvmName("ysywsnbojmqenqng")
    public suspend fun scalingConfig(argument: suspend ScalingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ScalingConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.scalingConfig = mapped
    }

    /**
     * @param value Required. The ID of the metastore service, which is used as the final component of the metastore service's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
     */
    @JvmName("lwrbbqykuoeetrwd")
    public suspend fun serviceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceId = mapped
    }

    /**
     * @param value The configuration specifying telemetry settings for the Dataproc Metastore service. If unspecified defaults to JSON.
     */
    @JvmName("jderpdkjydykghjk")
    public suspend fun telemetryConfig(`value`: TelemetryConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.telemetryConfig = mapped
    }

    /**
     * @param argument The configuration specifying telemetry settings for the Dataproc Metastore service. If unspecified defaults to JSON.
     */
    @JvmName("cwjmxdcisxupnfmr")
    public suspend fun telemetryConfig(argument: suspend TelemetryConfigArgsBuilder.() -> Unit) {
        val toBeMapped = TelemetryConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.telemetryConfig = mapped
    }

    /**
     * @param value The tier of the service.
     */
    @JvmName("bxyilbeulyykcpkj")
    public suspend fun tier(`value`: ServiceTier?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tier = mapped
    }

    internal fun build(): ServiceArgs = ServiceArgs(
        databaseType = databaseType,
        encryptionConfig = encryptionConfig,
        hiveMetastoreConfig = hiveMetastoreConfig,
        labels = labels,
        location = location,
        maintenanceWindow = maintenanceWindow,
        metadataIntegration = metadataIntegration,
        name = name,
        network = network,
        networkConfig = networkConfig,
        port = port,
        project = project,
        releaseChannel = releaseChannel,
        requestId = requestId,
        scalingConfig = scalingConfig,
        serviceId = serviceId,
        telemetryConfig = telemetryConfig,
        tier = tier,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy