# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'InstanceCryptoKeyConfigArgs',
    'InstanceEventPublishConfigArgs',
    'InstanceNetworkConfigArgs',
]

@pulumi.input_type
class InstanceCryptoKeyConfigArgs:
    def __init__(__self__, *,
                 key_reference: pulumi.Input[str]):
        """
        :param pulumi.Input[str] key_reference: The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of projects/*/locations/*/keyRings/*/cryptoKeys/*.
        """
        pulumi.set(__self__, "key_reference", key_reference)

    @property
    @pulumi.getter(name="keyReference")
    def key_reference(self) -> pulumi.Input[str]:
        """
        The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of projects/*/locations/*/keyRings/*/cryptoKeys/*.
        """
        return pulumi.get(self, "key_reference")

    @key_reference.setter
    def key_reference(self, value: pulumi.Input[str]):
        pulumi.set(self, "key_reference", value)


@pulumi.input_type
class InstanceEventPublishConfigArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[bool],
                 topic: pulumi.Input[str]):
        """
        :param pulumi.Input[bool] enabled: Option to enable Event Publishing.
        :param pulumi.Input[str] topic: The resource name of the Pub/Sub topic. Format: projects/{projectId}/topics/{topic_id}
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "topic", topic)

    @property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[bool]:
        """
        Option to enable Event Publishing.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter
    def topic(self) -> pulumi.Input[str]:
        """
        The resource name of the Pub/Sub topic. Format: projects/{projectId}/topics/{topic_id}
        """
        return pulumi.get(self, "topic")

    @topic.setter
    def topic(self, value: pulumi.Input[str]):
        pulumi.set(self, "topic", value)


@pulumi.input_type
class InstanceNetworkConfigArgs:
    def __init__(__self__, *,
                 ip_allocation: pulumi.Input[str],
                 network: pulumi.Input[str]):
        """
        :param pulumi.Input[str] ip_allocation: The IP range in CIDR notation to use for the managed Data Fusion instance
               nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
        :param pulumi.Input[str] network: Name of the network in the project with which the tenant project
               will be peered for executing pipelines. In case of shared VPC where the network resides in another host
               project the network should specified in the form of projects/{host-project-id}/global/networks/{network}
        """
        pulumi.set(__self__, "ip_allocation", ip_allocation)
        pulumi.set(__self__, "network", network)

    @property
    @pulumi.getter(name="ipAllocation")
    def ip_allocation(self) -> pulumi.Input[str]:
        """
        The IP range in CIDR notation to use for the managed Data Fusion instance
        nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
        """
        return pulumi.get(self, "ip_allocation")

    @ip_allocation.setter
    def ip_allocation(self, value: pulumi.Input[str]):
        pulumi.set(self, "ip_allocation", value)

    @property
    @pulumi.getter
    def network(self) -> pulumi.Input[str]:
        """
        Name of the network in the project with which the tenant project
        will be peered for executing pipelines. In case of shared VPC where the network resides in another host
        project the network should specified in the form of projects/{host-project-id}/global/networks/{network}
        """
        return pulumi.get(self, "network")

    @network.setter
    def network(self, value: pulumi.Input[str]):
        pulumi.set(self, "network", value)


