# 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__ = [
    'DatasetDatasetFormatDetailsArgs',
    'DatasetDatasetFormatDetailsTextFileTypeMetadataArgs',
    'DatasetDatasetSourceDetailsArgs',
    'DatasetInitialRecordGenerationConfigurationArgs',
    'DatasetLabelSetArgs',
    'DatasetLabelSetItemArgs',
    'GetAnnotationFormatsFilterArgs',
    'GetDatasetsFilterArgs',
]

@pulumi.input_type
class DatasetDatasetFormatDetailsArgs:
    def __init__(__self__, *,
                 format_type: pulumi.Input[str],
                 text_file_type_metadata: Optional[pulumi.Input['DatasetDatasetFormatDetailsTextFileTypeMetadataArgs']] = None):
        """
        :param pulumi.Input[str] format_type: It defines the format type of text files.
        :param pulumi.Input['DatasetDatasetFormatDetailsTextFileTypeMetadataArgs'] text_file_type_metadata: Metadata for files with text content.
        """
        pulumi.set(__self__, "format_type", format_type)
        if text_file_type_metadata is not None:
            pulumi.set(__self__, "text_file_type_metadata", text_file_type_metadata)

    @property
    @pulumi.getter(name="formatType")
    def format_type(self) -> pulumi.Input[str]:
        """
        It defines the format type of text files.
        """
        return pulumi.get(self, "format_type")

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

    @property
    @pulumi.getter(name="textFileTypeMetadata")
    def text_file_type_metadata(self) -> Optional[pulumi.Input['DatasetDatasetFormatDetailsTextFileTypeMetadataArgs']]:
        """
        Metadata for files with text content.
        """
        return pulumi.get(self, "text_file_type_metadata")

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


@pulumi.input_type
class DatasetDatasetFormatDetailsTextFileTypeMetadataArgs:
    def __init__(__self__, *,
                 column_index: pulumi.Input[int],
                 format_type: pulumi.Input[str],
                 column_delimiter: Optional[pulumi.Input[str]] = None,
                 column_name: Optional[pulumi.Input[str]] = None,
                 escape_character: Optional[pulumi.Input[str]] = None,
                 line_delimiter: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[int] column_index: The index of a selected column. This is a zero-based index.
        :param pulumi.Input[str] format_type: It defines the format type of text files.
        :param pulumi.Input[str] column_delimiter: A column delimiter
        :param pulumi.Input[str] column_name: The name of a selected column.
        :param pulumi.Input[str] escape_character: An escape character.
        :param pulumi.Input[str] line_delimiter: A line delimiter.
        """
        pulumi.set(__self__, "column_index", column_index)
        pulumi.set(__self__, "format_type", format_type)
        if column_delimiter is not None:
            pulumi.set(__self__, "column_delimiter", column_delimiter)
        if column_name is not None:
            pulumi.set(__self__, "column_name", column_name)
        if escape_character is not None:
            pulumi.set(__self__, "escape_character", escape_character)
        if line_delimiter is not None:
            pulumi.set(__self__, "line_delimiter", line_delimiter)

    @property
    @pulumi.getter(name="columnIndex")
    def column_index(self) -> pulumi.Input[int]:
        """
        The index of a selected column. This is a zero-based index.
        """
        return pulumi.get(self, "column_index")

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

    @property
    @pulumi.getter(name="formatType")
    def format_type(self) -> pulumi.Input[str]:
        """
        It defines the format type of text files.
        """
        return pulumi.get(self, "format_type")

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

    @property
    @pulumi.getter(name="columnDelimiter")
    def column_delimiter(self) -> Optional[pulumi.Input[str]]:
        """
        A column delimiter
        """
        return pulumi.get(self, "column_delimiter")

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

    @property
    @pulumi.getter(name="columnName")
    def column_name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of a selected column.
        """
        return pulumi.get(self, "column_name")

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

    @property
    @pulumi.getter(name="escapeCharacter")
    def escape_character(self) -> Optional[pulumi.Input[str]]:
        """
        An escape character.
        """
        return pulumi.get(self, "escape_character")

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

    @property
    @pulumi.getter(name="lineDelimiter")
    def line_delimiter(self) -> Optional[pulumi.Input[str]]:
        """
        A line delimiter.
        """
        return pulumi.get(self, "line_delimiter")

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


@pulumi.input_type
class DatasetDatasetSourceDetailsArgs:
    def __init__(__self__, *,
                 bucket: pulumi.Input[str],
                 namespace: pulumi.Input[str],
                 source_type: pulumi.Input[str],
                 prefix: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] bucket: The object storage bucket that contains the dataset data source.
        :param pulumi.Input[str] namespace: The namespace of the bucket that contains the dataset data source.
        :param pulumi.Input[str] source_type: The source type. OBJECT_STORAGE allows the user to describe where in object storage the dataset is.
        :param pulumi.Input[str] prefix: A common path prefix shared by the objects that make up the dataset. Except for the CSV file type, records are not generated for the objects whose names exactly match with the prefix.
        """
        pulumi.set(__self__, "bucket", bucket)
        pulumi.set(__self__, "namespace", namespace)
        pulumi.set(__self__, "source_type", source_type)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)

    @property
    @pulumi.getter
    def bucket(self) -> pulumi.Input[str]:
        """
        The object storage bucket that contains the dataset data source.
        """
        return pulumi.get(self, "bucket")

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

    @property
    @pulumi.getter
    def namespace(self) -> pulumi.Input[str]:
        """
        The namespace of the bucket that contains the dataset data source.
        """
        return pulumi.get(self, "namespace")

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

    @property
    @pulumi.getter(name="sourceType")
    def source_type(self) -> pulumi.Input[str]:
        """
        The source type. OBJECT_STORAGE allows the user to describe where in object storage the dataset is.
        """
        return pulumi.get(self, "source_type")

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

    @property
    @pulumi.getter
    def prefix(self) -> Optional[pulumi.Input[str]]:
        """
        A common path prefix shared by the objects that make up the dataset. Except for the CSV file type, records are not generated for the objects whose names exactly match with the prefix.
        """
        return pulumi.get(self, "prefix")

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


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


@pulumi.input_type
class DatasetLabelSetArgs:
    def __init__(__self__, *,
                 items: pulumi.Input[Sequence[pulumi.Input['DatasetLabelSetItemArgs']]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['DatasetLabelSetItemArgs']]] items: An ordered collection of labels that are unique by name.
        """
        pulumi.set(__self__, "items", items)

    @property
    @pulumi.getter
    def items(self) -> pulumi.Input[Sequence[pulumi.Input['DatasetLabelSetItemArgs']]]:
        """
        An ordered collection of labels that are unique by name.
        """
        return pulumi.get(self, "items")

    @items.setter
    def items(self, value: pulumi.Input[Sequence[pulumi.Input['DatasetLabelSetItemArgs']]]):
        pulumi.set(self, "items", value)


@pulumi.input_type
class DatasetLabelSetItemArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str]):
        """
        :param pulumi.Input[str] name: An unique name for a label within its dataset.
        """
        pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        An unique name for a label within its dataset.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class GetAnnotationFormatsFilterArgs:
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: A unique name for the target AnnotationFormat for the Dataset.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        A unique name for the target AnnotationFormat for the Dataset.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")

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


@pulumi.input_type
class GetDatasetsFilterArgs:
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        """
        :param str name: An unique name for a label within its dataset.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        An unique name for a label within its dataset.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")

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

    @property
    @pulumi.getter
    def regex(self) -> Optional[bool]:
        return pulumi.get(self, "regex")

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


