# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

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

__all__ = [
    'DataLakeSettingsAdminsArgs',
    'PermissionsColumnWildcardArgs',
    'PermissionsDataLakePrincipalArgs',
    'PermissionsDataLocationResourceArgs',
    'PermissionsDatabaseResourceArgs',
    'PermissionsResourceArgs',
    'PermissionsTableResourceArgs',
    'PermissionsTableWildcardArgs',
    'PermissionsTableWithColumnsResourceArgs',
]

@pulumi.input_type
class DataLakeSettingsAdminsArgs:
    def __init__(__self__):
        pass


@pulumi.input_type
class PermissionsColumnWildcardArgs:
    def __init__(__self__, *,
                 excluded_column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if excluded_column_names is not None:
            pulumi.set(__self__, "excluded_column_names", excluded_column_names)

    @property
    @pulumi.getter(name="excludedColumnNames")
    def excluded_column_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "excluded_column_names")

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


@pulumi.input_type
class PermissionsDataLakePrincipalArgs:
    def __init__(__self__, *,
                 data_lake_principal_identifier: Optional[pulumi.Input[str]] = None):
        if data_lake_principal_identifier is not None:
            pulumi.set(__self__, "data_lake_principal_identifier", data_lake_principal_identifier)

    @property
    @pulumi.getter(name="dataLakePrincipalIdentifier")
    def data_lake_principal_identifier(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "data_lake_principal_identifier")

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


@pulumi.input_type
class PermissionsDataLocationResourceArgs:
    def __init__(__self__, *,
                 catalog_id: Optional[pulumi.Input[str]] = None,
                 s3_resource: Optional[pulumi.Input[str]] = None):
        if catalog_id is not None:
            pulumi.set(__self__, "catalog_id", catalog_id)
        if s3_resource is not None:
            pulumi.set(__self__, "s3_resource", s3_resource)

    @property
    @pulumi.getter(name="catalogId")
    def catalog_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "catalog_id")

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

    @property
    @pulumi.getter(name="s3Resource")
    def s3_resource(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "s3_resource")

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


@pulumi.input_type
class PermissionsDatabaseResourceArgs:
    def __init__(__self__, *,
                 catalog_id: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        if catalog_id is not None:
            pulumi.set(__self__, "catalog_id", catalog_id)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="catalogId")
    def catalog_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "catalog_id")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name")

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


@pulumi.input_type
class PermissionsResourceArgs:
    def __init__(__self__, *,
                 data_location_resource: Optional[pulumi.Input['PermissionsDataLocationResourceArgs']] = None,
                 database_resource: Optional[pulumi.Input['PermissionsDatabaseResourceArgs']] = None,
                 table_resource: Optional[pulumi.Input['PermissionsTableResourceArgs']] = None,
                 table_with_columns_resource: Optional[pulumi.Input['PermissionsTableWithColumnsResourceArgs']] = None):
        if data_location_resource is not None:
            pulumi.set(__self__, "data_location_resource", data_location_resource)
        if database_resource is not None:
            pulumi.set(__self__, "database_resource", database_resource)
        if table_resource is not None:
            pulumi.set(__self__, "table_resource", table_resource)
        if table_with_columns_resource is not None:
            pulumi.set(__self__, "table_with_columns_resource", table_with_columns_resource)

    @property
    @pulumi.getter(name="dataLocationResource")
    def data_location_resource(self) -> Optional[pulumi.Input['PermissionsDataLocationResourceArgs']]:
        return pulumi.get(self, "data_location_resource")

    @data_location_resource.setter
    def data_location_resource(self, value: Optional[pulumi.Input['PermissionsDataLocationResourceArgs']]):
        pulumi.set(self, "data_location_resource", value)

    @property
    @pulumi.getter(name="databaseResource")
    def database_resource(self) -> Optional[pulumi.Input['PermissionsDatabaseResourceArgs']]:
        return pulumi.get(self, "database_resource")

    @database_resource.setter
    def database_resource(self, value: Optional[pulumi.Input['PermissionsDatabaseResourceArgs']]):
        pulumi.set(self, "database_resource", value)

    @property
    @pulumi.getter(name="tableResource")
    def table_resource(self) -> Optional[pulumi.Input['PermissionsTableResourceArgs']]:
        return pulumi.get(self, "table_resource")

    @table_resource.setter
    def table_resource(self, value: Optional[pulumi.Input['PermissionsTableResourceArgs']]):
        pulumi.set(self, "table_resource", value)

    @property
    @pulumi.getter(name="tableWithColumnsResource")
    def table_with_columns_resource(self) -> Optional[pulumi.Input['PermissionsTableWithColumnsResourceArgs']]:
        return pulumi.get(self, "table_with_columns_resource")

    @table_with_columns_resource.setter
    def table_with_columns_resource(self, value: Optional[pulumi.Input['PermissionsTableWithColumnsResourceArgs']]):
        pulumi.set(self, "table_with_columns_resource", value)


@pulumi.input_type
class PermissionsTableResourceArgs:
    def __init__(__self__, *,
                 catalog_id: Optional[pulumi.Input[str]] = None,
                 database_name: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 table_wildcard: Optional[pulumi.Input['PermissionsTableWildcardArgs']] = None):
        if catalog_id is not None:
            pulumi.set(__self__, "catalog_id", catalog_id)
        if database_name is not None:
            pulumi.set(__self__, "database_name", database_name)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if table_wildcard is not None:
            pulumi.set(__self__, "table_wildcard", table_wildcard)

    @property
    @pulumi.getter(name="catalogId")
    def catalog_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "catalog_id")

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

    @property
    @pulumi.getter(name="databaseName")
    def database_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "database_name")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="tableWildcard")
    def table_wildcard(self) -> Optional[pulumi.Input['PermissionsTableWildcardArgs']]:
        return pulumi.get(self, "table_wildcard")

    @table_wildcard.setter
    def table_wildcard(self, value: Optional[pulumi.Input['PermissionsTableWildcardArgs']]):
        pulumi.set(self, "table_wildcard", value)


@pulumi.input_type
class PermissionsTableWildcardArgs:
    def __init__(__self__):
        pass


@pulumi.input_type
class PermissionsTableWithColumnsResourceArgs:
    def __init__(__self__, *,
                 catalog_id: Optional[pulumi.Input[str]] = None,
                 column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 column_wildcard: Optional[pulumi.Input['PermissionsColumnWildcardArgs']] = None,
                 database_name: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        if catalog_id is not None:
            pulumi.set(__self__, "catalog_id", catalog_id)
        if column_names is not None:
            pulumi.set(__self__, "column_names", column_names)
        if column_wildcard is not None:
            pulumi.set(__self__, "column_wildcard", column_wildcard)
        if database_name is not None:
            pulumi.set(__self__, "database_name", database_name)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="catalogId")
    def catalog_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "catalog_id")

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

    @property
    @pulumi.getter(name="columnNames")
    def column_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "column_names")

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

    @property
    @pulumi.getter(name="columnWildcard")
    def column_wildcard(self) -> Optional[pulumi.Input['PermissionsColumnWildcardArgs']]:
        return pulumi.get(self, "column_wildcard")

    @column_wildcard.setter
    def column_wildcard(self, value: Optional[pulumi.Input['PermissionsColumnWildcardArgs']]):
        pulumi.set(self, "column_wildcard", value)

    @property
    @pulumi.getter(name="databaseName")
    def database_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "database_name")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name")

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


