<filename>sdk/python/pulumi_gcp/datacatalog/outputs.py
# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
from .. import _utilities, _tables
from . import outputs

__all__ = [
    'EntryBigqueryDateShardedSpec',
    'EntryBigqueryTableSpec',
    'EntryBigqueryTableSpecTableSpec',
    'EntryBigqueryTableSpecViewSpec',
    'EntryGcsFilesetSpec',
    'EntryGcsFilesetSpecSampleGcsFileSpec',
    'EntryGroupIamBindingCondition',
    'EntryGroupIamMemberCondition',
    'TagField',
    'TagTemplateField',
    'TagTemplateFieldType',
    'TagTemplateFieldTypeEnumType',
    'TagTemplateFieldTypeEnumTypeAllowedValue',
]

@pulumi.output_type
class EntryBigqueryDateShardedSpec(dict):
    def __init__(__self__, *,
                 dataset: Optional[str] = None,
                 shard_count: Optional[float] = None,
                 table_prefix: Optional[str] = None):
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if shard_count is not None:
            pulumi.set(__self__, "shard_count", shard_count)
        if table_prefix is not None:
            pulumi.set(__self__, "table_prefix", table_prefix)

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

    @property
    @pulumi.getter(name="shardCount")
    def shard_count(self) -> Optional[float]:
        return pulumi.get(self, "shard_count")

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryBigqueryTableSpec(dict):
    def __init__(__self__, *,
                 table_source_type: Optional[str] = None,
                 table_spec: Optional['outputs.EntryBigqueryTableSpecTableSpec'] = None,
                 view_spec: Optional['outputs.EntryBigqueryTableSpecViewSpec'] = None):
        if table_source_type is not None:
            pulumi.set(__self__, "table_source_type", table_source_type)
        if table_spec is not None:
            pulumi.set(__self__, "table_spec", table_spec)
        if view_spec is not None:
            pulumi.set(__self__, "view_spec", view_spec)

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

    @property
    @pulumi.getter(name="tableSpec")
    def table_spec(self) -> Optional['outputs.EntryBigqueryTableSpecTableSpec']:
        return pulumi.get(self, "table_spec")

    @property
    @pulumi.getter(name="viewSpec")
    def view_spec(self) -> Optional['outputs.EntryBigqueryTableSpecViewSpec']:
        return pulumi.get(self, "view_spec")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryBigqueryTableSpecTableSpec(dict):
    def __init__(__self__, *,
                 grouped_entry: Optional[str] = None):
        if grouped_entry is not None:
            pulumi.set(__self__, "grouped_entry", grouped_entry)

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryBigqueryTableSpecViewSpec(dict):
    def __init__(__self__, *,
                 view_query: Optional[str] = None):
        if view_query is not None:
            pulumi.set(__self__, "view_query", view_query)

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGcsFilesetSpec(dict):
    def __init__(__self__, *,
                 file_patterns: List[str],
                 sample_gcs_file_specs: Optional[List['outputs.EntryGcsFilesetSpecSampleGcsFileSpec']] = None):
        """
        :param List[str] file_patterns: Patterns to identify a set of files in Google Cloud Storage.
               See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)
               for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:
               * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.
               * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.
               * gs://bucket_name/file*: matches files prefixed by file in bucket_name
               * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name
               * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name
               * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name
               * gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b
               * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt
        :param List['EntryGcsFilesetSpecSampleGcsFileSpecArgs'] sample_gcs_file_specs: -
               Sample files contained in this fileset, not all files contained in this fileset are represented here.
               Structure is documented below.
        """
        pulumi.set(__self__, "file_patterns", file_patterns)
        if sample_gcs_file_specs is not None:
            pulumi.set(__self__, "sample_gcs_file_specs", sample_gcs_file_specs)

    @property
    @pulumi.getter(name="filePatterns")
    def file_patterns(self) -> List[str]:
        """
        Patterns to identify a set of files in Google Cloud Storage.
        See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)
        for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:
        * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.
        * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.
        * gs://bucket_name/file*: matches files prefixed by file in bucket_name
        * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name
        * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name
        * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name
        * gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b
        * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt
        """
        return pulumi.get(self, "file_patterns")

    @property
    @pulumi.getter(name="sampleGcsFileSpecs")
    def sample_gcs_file_specs(self) -> Optional[List['outputs.EntryGcsFilesetSpecSampleGcsFileSpec']]:
        """
        -
        Sample files contained in this fileset, not all files contained in this fileset are represented here.
        Structure is documented below.
        """
        return pulumi.get(self, "sample_gcs_file_specs")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGcsFilesetSpecSampleGcsFileSpec(dict):
    def __init__(__self__, *,
                 file_path: Optional[str] = None,
                 size_bytes: Optional[float] = None):
        """
        :param str file_path: -
               The full file path
        :param float size_bytes: -
               The size of the file, in bytes.
        """
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if size_bytes is not None:
            pulumi.set(__self__, "size_bytes", size_bytes)

    @property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[str]:
        """
        -
        The full file path
        """
        return pulumi.get(self, "file_path")

    @property
    @pulumi.getter(name="sizeBytes")
    def size_bytes(self) -> Optional[float]:
        """
        -
        The size of the file, in bytes.
        """
        return pulumi.get(self, "size_bytes")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGroupIamBindingCondition(dict):
    def __init__(__self__, *,
                 expression: str,
                 title: str,
                 description: Optional[str] = None):
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "title", title)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def expression(self) -> str:
        return pulumi.get(self, "expression")

    @property
    @pulumi.getter
    def title(self) -> str:
        return pulumi.get(self, "title")

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGroupIamMemberCondition(dict):
    def __init__(__self__, *,
                 expression: str,
                 title: str,
                 description: Optional[str] = None):
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "title", title)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def expression(self) -> str:
        return pulumi.get(self, "expression")

    @property
    @pulumi.getter
    def title(self) -> str:
        return pulumi.get(self, "title")

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagField(dict):
    def __init__(__self__, *,
                 field_name: str,
                 bool_value: Optional[bool] = None,
                 display_name: Optional[str] = None,
                 double_value: Optional[float] = None,
                 enum_value: Optional[str] = None,
                 order: Optional[float] = None,
                 string_value: Optional[str] = None,
                 timestamp_value: Optional[str] = None):
        """
        :param str field_name: The identifier for this object. Format specified above.
        :param bool bool_value: Holds the value for a tag field with boolean type.
        :param str display_name: -
               The display name of this field
        :param float double_value: Holds the value for a tag field with double type.
        :param str enum_value: Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.
               Structure is documented below.
        :param float order: -
               The order of this field with respect to other fields in this tag. For example, a higher value can indicate
               a more important field. The value can be negative. Multiple fields can have the same order, and field orders
               within a tag do not have to be sequential.
        :param str string_value: Holds the value for a tag field with string type.
        :param str timestamp_value: Holds the value for a tag field with timestamp type.
        """
        pulumi.set(__self__, "field_name", field_name)
        if bool_value is not None:
            pulumi.set(__self__, "bool_value", bool_value)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)
        if double_value is not None:
            pulumi.set(__self__, "double_value", double_value)
        if enum_value is not None:
            pulumi.set(__self__, "enum_value", enum_value)
        if order is not None:
            pulumi.set(__self__, "order", order)
        if string_value is not None:
            pulumi.set(__self__, "string_value", string_value)
        if timestamp_value is not None:
            pulumi.set(__self__, "timestamp_value", timestamp_value)

    @property
    @pulumi.getter(name="fieldName")
    def field_name(self) -> str:
        """
        The identifier for this object. Format specified above.
        """
        return pulumi.get(self, "field_name")

    @property
    @pulumi.getter(name="boolValue")
    def bool_value(self) -> Optional[bool]:
        """
        Holds the value for a tag field with boolean type.
        """
        return pulumi.get(self, "bool_value")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        -
        The display name of this field
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="doubleValue")
    def double_value(self) -> Optional[float]:
        """
        Holds the value for a tag field with double type.
        """
        return pulumi.get(self, "double_value")

    @property
    @pulumi.getter(name="enumValue")
    def enum_value(self) -> Optional[str]:
        """
        Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.
        Structure is documented below.
        """
        return pulumi.get(self, "enum_value")

    @property
    @pulumi.getter
    def order(self) -> Optional[float]:
        """
        -
        The order of this field with respect to other fields in this tag. For example, a higher value can indicate
        a more important field. The value can be negative. Multiple fields can have the same order, and field orders
        within a tag do not have to be sequential.
        """
        return pulumi.get(self, "order")

    @property
    @pulumi.getter(name="stringValue")
    def string_value(self) -> Optional[str]:
        """
        Holds the value for a tag field with string type.
        """
        return pulumi.get(self, "string_value")

    @property
    @pulumi.getter(name="timestampValue")
    def timestamp_value(self) -> Optional[str]:
        """
        Holds the value for a tag field with timestamp type.
        """
        return pulumi.get(self, "timestamp_value")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateField(dict):
    def __init__(__self__, *,
                 field_id: str,
                 type: 'outputs.TagTemplateFieldType',
                 display_name: Optional[str] = None,
                 is_required: Optional[bool] = None,
                 name: Optional[str] = None,
                 order: Optional[float] = None):
        """
        :param str field_id: The identifier for this object. Format specified above.
        :param 'TagTemplateFieldTypeArgs' type: The type of value this tag field can contain.
               Structure is documented below.
        :param str display_name: The display name for this template.
        :param bool is_required: Whether this is a required field. Defaults to false.
        :param str name: -
               The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
        :param float order: The order of this field with respect to other fields in this tag template.
               A higher value indicates a more important field. The value can be negative.
               Multiple fields can have the same order, and field orders within a tag do not have to be sequential.
        """
        pulumi.set(__self__, "field_id", field_id)
        pulumi.set(__self__, "type", type)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)
        if is_required is not None:
            pulumi.set(__self__, "is_required", is_required)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if order is not None:
            pulumi.set(__self__, "order", order)

    @property
    @pulumi.getter(name="fieldId")
    def field_id(self) -> str:
        """
        The identifier for this object. Format specified above.
        """
        return pulumi.get(self, "field_id")

    @property
    @pulumi.getter
    def type(self) -> 'outputs.TagTemplateFieldType':
        """
        The type of value this tag field can contain.
        Structure is documented below.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        The display name for this template.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="isRequired")
    def is_required(self) -> Optional[bool]:
        """
        Whether this is a required field. Defaults to false.
        """
        return pulumi.get(self, "is_required")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        -
        The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def order(self) -> Optional[float]:
        """
        The order of this field with respect to other fields in this tag template.
        A higher value indicates a more important field. The value can be negative.
        Multiple fields can have the same order, and field orders within a tag do not have to be sequential.
        """
        return pulumi.get(self, "order")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateFieldType(dict):
    def __init__(__self__, *,
                 enum_type: Optional['outputs.TagTemplateFieldTypeEnumType'] = None,
                 primitive_type: Optional[str] = None):
        """
        :param 'TagTemplateFieldTypeEnumTypeArgs' enum_type: Represents an enum type.
               Exactly one of `primitive_type` or `enum_type` must be set
               Structure is documented below.
        :param str primitive_type: Represents primitive types - string, bool etc.
               Exactly one of `primitive_type` or `enum_type` must be set
               Possible values are `DOUBLE`, `STRING`, `BOOL`, and `TIMESTAMP`.
        """
        if enum_type is not None:
            pulumi.set(__self__, "enum_type", enum_type)
        if primitive_type is not None:
            pulumi.set(__self__, "primitive_type", primitive_type)

    @property
    @pulumi.getter(name="enumType")
    def enum_type(self) -> Optional['outputs.TagTemplateFieldTypeEnumType']:
        """
        Represents an enum type.
        Exactly one of `primitive_type` or `enum_type` must be set
        Structure is documented below.
        """
        return pulumi.get(self, "enum_type")

    @property
    @pulumi.getter(name="primitiveType")
    def primitive_type(self) -> Optional[str]:
        """
        Represents primitive types - string, bool etc.
        Exactly one of `primitive_type` or `enum_type` must be set
        Possible values are `DOUBLE`, `STRING`, `BOOL`, and `TIMESTAMP`.
        """
        return pulumi.get(self, "primitive_type")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateFieldTypeEnumType(dict):
    def __init__(__self__, *,
                 allowed_values: List['outputs.TagTemplateFieldTypeEnumTypeAllowedValue']):
        """
        :param List['TagTemplateFieldTypeEnumTypeAllowedValueArgs'] allowed_values: The set of allowed values for this enum. The display names of the
               values must be case-insensitively unique within this set. Currently,
               enum values can only be added to the list of allowed values. Deletion
               and renaming of enum values are not supported.
               Can have up to 500 allowed values.
               Structure is documented below.
        """
        pulumi.set(__self__, "allowed_values", allowed_values)

    @property
    @pulumi.getter(name="allowedValues")
    def allowed_values(self) -> List['outputs.TagTemplateFieldTypeEnumTypeAllowedValue']:
        """
        The set of allowed values for this enum. The display names of the
        values must be case-insensitively unique within this set. Currently,
        enum values can only be added to the list of allowed values. Deletion
        and renaming of enum values are not supported.
        Can have up to 500 allowed values.
        Structure is documented below.
        """
        return pulumi.get(self, "allowed_values")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateFieldTypeEnumTypeAllowedValue(dict):
    def __init__(__self__, *,
                 display_name: str):
        """
        :param str display_name: The display name for this template.
        """
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        The display name for this template.
        """
        return pulumi.get(self, "display_name")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop



<filename>sdk/python/pulumi_gcp/datacatalog/outputs.py
# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
from .. import _utilities, _tables
from . import outputs

__all__ = [
    'EntryBigqueryDateShardedSpec',
    'EntryBigqueryTableSpec',
    'EntryBigqueryTableSpecTableSpec',
    'EntryBigqueryTableSpecViewSpec',
    'EntryGcsFilesetSpec',
    'EntryGcsFilesetSpecSampleGcsFileSpec',
    'EntryGroupIamBindingCondition',
    'EntryGroupIamMemberCondition',
    'TagField',
    'TagTemplateField',
    'TagTemplateFieldType',
    'TagTemplateFieldTypeEnumType',
    'TagTemplateFieldTypeEnumTypeAllowedValue',
]

@pulumi.output_type
class EntryBigqueryDateShardedSpec(dict):
    def __init__(__self__, *,
                 dataset: Optional[str] = None,
                 shard_count: Optional[float] = None,
                 table_prefix: Optional[str] = None):
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if shard_count is not None:
            pulumi.set(__self__, "shard_count", shard_count)
        if table_prefix is not None:
            pulumi.set(__self__, "table_prefix", table_prefix)

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

    @property
    @pulumi.getter(name="shardCount")
    def shard_count(self) -> Optional[float]:
        return pulumi.get(self, "shard_count")

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryBigqueryTableSpec(dict):
    def __init__(__self__, *,
                 table_source_type: Optional[str] = None,
                 table_spec: Optional['outputs.EntryBigqueryTableSpecTableSpec'] = None,
                 view_spec: Optional['outputs.EntryBigqueryTableSpecViewSpec'] = None):
        if table_source_type is not None:
            pulumi.set(__self__, "table_source_type", table_source_type)
        if table_spec is not None:
            pulumi.set(__self__, "table_spec", table_spec)
        if view_spec is not None:
            pulumi.set(__self__, "view_spec", view_spec)

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

    @property
    @pulumi.getter(name="tableSpec")
    def table_spec(self) -> Optional['outputs.EntryBigqueryTableSpecTableSpec']:
        return pulumi.get(self, "table_spec")

    @property
    @pulumi.getter(name="viewSpec")
    def view_spec(self) -> Optional['outputs.EntryBigqueryTableSpecViewSpec']:
        return pulumi.get(self, "view_spec")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryBigqueryTableSpecTableSpec(dict):
    def __init__(__self__, *,
                 grouped_entry: Optional[str] = None):
        if grouped_entry is not None:
            pulumi.set(__self__, "grouped_entry", grouped_entry)

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryBigqueryTableSpecViewSpec(dict):
    def __init__(__self__, *,
                 view_query: Optional[str] = None):
        if view_query is not None:
            pulumi.set(__self__, "view_query", view_query)

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGcsFilesetSpec(dict):
    def __init__(__self__, *,
                 file_patterns: List[str],
                 sample_gcs_file_specs: Optional[List['outputs.EntryGcsFilesetSpecSampleGcsFileSpec']] = None):
        """
        :param List[str] file_patterns: Patterns to identify a set of files in Google Cloud Storage.
               See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)
               for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:
               * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.
               * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.
               * gs://bucket_name/file*: matches files prefixed by file in bucket_name
               * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name
               * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name
               * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name
               * gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b
               * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt
        :param List['EntryGcsFilesetSpecSampleGcsFileSpecArgs'] sample_gcs_file_specs: -
               Sample files contained in this fileset, not all files contained in this fileset are represented here.
               Structure is documented below.
        """
        pulumi.set(__self__, "file_patterns", file_patterns)
        if sample_gcs_file_specs is not None:
            pulumi.set(__self__, "sample_gcs_file_specs", sample_gcs_file_specs)

    @property
    @pulumi.getter(name="filePatterns")
    def file_patterns(self) -> List[str]:
        """
        Patterns to identify a set of files in Google Cloud Storage.
        See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)
        for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:
        * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.
        * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.
        * gs://bucket_name/file*: matches files prefixed by file in bucket_name
        * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name
        * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name
        * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name
        * gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b
        * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt
        """
        return pulumi.get(self, "file_patterns")

    @property
    @pulumi.getter(name="sampleGcsFileSpecs")
    def sample_gcs_file_specs(self) -> Optional[List['outputs.EntryGcsFilesetSpecSampleGcsFileSpec']]:
        """
        -
        Sample files contained in this fileset, not all files contained in this fileset are represented here.
        Structure is documented below.
        """
        return pulumi.get(self, "sample_gcs_file_specs")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGcsFilesetSpecSampleGcsFileSpec(dict):
    def __init__(__self__, *,
                 file_path: Optional[str] = None,
                 size_bytes: Optional[float] = None):
        """
        :param str file_path: -
               The full file path
        :param float size_bytes: -
               The size of the file, in bytes.
        """
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if size_bytes is not None:
            pulumi.set(__self__, "size_bytes", size_bytes)

    @property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[str]:
        """
        -
        The full file path
        """
        return pulumi.get(self, "file_path")

    @property
    @pulumi.getter(name="sizeBytes")
    def size_bytes(self) -> Optional[float]:
        """
        -
        The size of the file, in bytes.
        """
        return pulumi.get(self, "size_bytes")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGroupIamBindingCondition(dict):
    def __init__(__self__, *,
                 expression: str,
                 title: str,
                 description: Optional[str] = None):
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "title", title)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def expression(self) -> str:
        return pulumi.get(self, "expression")

    @property
    @pulumi.getter
    def title(self) -> str:
        return pulumi.get(self, "title")

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class EntryGroupIamMemberCondition(dict):
    def __init__(__self__, *,
                 expression: str,
                 title: str,
                 description: Optional[str] = None):
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "title", title)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def expression(self) -> str:
        return pulumi.get(self, "expression")

    @property
    @pulumi.getter
    def title(self) -> str:
        return pulumi.get(self, "title")

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

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagField(dict):
    def __init__(__self__, *,
                 field_name: str,
                 bool_value: Optional[bool] = None,
                 display_name: Optional[str] = None,
                 double_value: Optional[float] = None,
                 enum_value: Optional[str] = None,
                 order: Optional[float] = None,
                 string_value: Optional[str] = None,
                 timestamp_value: Optional[str] = None):
        """
        :param str field_name: The identifier for this object. Format specified above.
        :param bool bool_value: Holds the value for a tag field with boolean type.
        :param str display_name: -
               The display name of this field
        :param float double_value: Holds the value for a tag field with double type.
        :param str enum_value: Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.
               Structure is documented below.
        :param float order: -
               The order of this field with respect to other fields in this tag. For example, a higher value can indicate
               a more important field. The value can be negative. Multiple fields can have the same order, and field orders
               within a tag do not have to be sequential.
        :param str string_value: Holds the value for a tag field with string type.
        :param str timestamp_value: Holds the value for a tag field with timestamp type.
        """
        pulumi.set(__self__, "field_name", field_name)
        if bool_value is not None:
            pulumi.set(__self__, "bool_value", bool_value)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)
        if double_value is not None:
            pulumi.set(__self__, "double_value", double_value)
        if enum_value is not None:
            pulumi.set(__self__, "enum_value", enum_value)
        if order is not None:
            pulumi.set(__self__, "order", order)
        if string_value is not None:
            pulumi.set(__self__, "string_value", string_value)
        if timestamp_value is not None:
            pulumi.set(__self__, "timestamp_value", timestamp_value)

    @property
    @pulumi.getter(name="fieldName")
    def field_name(self) -> str:
        """
        The identifier for this object. Format specified above.
        """
        return pulumi.get(self, "field_name")

    @property
    @pulumi.getter(name="boolValue")
    def bool_value(self) -> Optional[bool]:
        """
        Holds the value for a tag field with boolean type.
        """
        return pulumi.get(self, "bool_value")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        -
        The display name of this field
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="doubleValue")
    def double_value(self) -> Optional[float]:
        """
        Holds the value for a tag field with double type.
        """
        return pulumi.get(self, "double_value")

    @property
    @pulumi.getter(name="enumValue")
    def enum_value(self) -> Optional[str]:
        """
        Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.
        Structure is documented below.
        """
        return pulumi.get(self, "enum_value")

    @property
    @pulumi.getter
    def order(self) -> Optional[float]:
        """
        -
        The order of this field with respect to other fields in this tag. For example, a higher value can indicate
        a more important field. The value can be negative. Multiple fields can have the same order, and field orders
        within a tag do not have to be sequential.
        """
        return pulumi.get(self, "order")

    @property
    @pulumi.getter(name="stringValue")
    def string_value(self) -> Optional[str]:
        """
        Holds the value for a tag field with string type.
        """
        return pulumi.get(self, "string_value")

    @property
    @pulumi.getter(name="timestampValue")
    def timestamp_value(self) -> Optional[str]:
        """
        Holds the value for a tag field with timestamp type.
        """
        return pulumi.get(self, "timestamp_value")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateField(dict):
    def __init__(__self__, *,
                 field_id: str,
                 type: 'outputs.TagTemplateFieldType',
                 display_name: Optional[str] = None,
                 is_required: Optional[bool] = None,
                 name: Optional[str] = None,
                 order: Optional[float] = None):
        """
        :param str field_id: The identifier for this object. Format specified above.
        :param 'TagTemplateFieldTypeArgs' type: The type of value this tag field can contain.
               Structure is documented below.
        :param str display_name: The display name for this template.
        :param bool is_required: Whether this is a required field. Defaults to false.
        :param str name: -
               The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
        :param float order: The order of this field with respect to other fields in this tag template.
               A higher value indicates a more important field. The value can be negative.
               Multiple fields can have the same order, and field orders within a tag do not have to be sequential.
        """
        pulumi.set(__self__, "field_id", field_id)
        pulumi.set(__self__, "type", type)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)
        if is_required is not None:
            pulumi.set(__self__, "is_required", is_required)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if order is not None:
            pulumi.set(__self__, "order", order)

    @property
    @pulumi.getter(name="fieldId")
    def field_id(self) -> str:
        """
        The identifier for this object. Format specified above.
        """
        return pulumi.get(self, "field_id")

    @property
    @pulumi.getter
    def type(self) -> 'outputs.TagTemplateFieldType':
        """
        The type of value this tag field can contain.
        Structure is documented below.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[str]:
        """
        The display name for this template.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="isRequired")
    def is_required(self) -> Optional[bool]:
        """
        Whether this is a required field. Defaults to false.
        """
        return pulumi.get(self, "is_required")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        -
        The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def order(self) -> Optional[float]:
        """
        The order of this field with respect to other fields in this tag template.
        A higher value indicates a more important field. The value can be negative.
        Multiple fields can have the same order, and field orders within a tag do not have to be sequential.
        """
        return pulumi.get(self, "order")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateFieldType(dict):
    def __init__(__self__, *,
                 enum_type: Optional['outputs.TagTemplateFieldTypeEnumType'] = None,
                 primitive_type: Optional[str] = None):
        """
        :param 'TagTemplateFieldTypeEnumTypeArgs' enum_type: Represents an enum type.
               Exactly one of `primitive_type` or `enum_type` must be set
               Structure is documented below.
        :param str primitive_type: Represents primitive types - string, bool etc.
               Exactly one of `primitive_type` or `enum_type` must be set
               Possible values are `DOUBLE`, `STRING`, `BOOL`, and `TIMESTAMP`.
        """
        if enum_type is not None:
            pulumi.set(__self__, "enum_type", enum_type)
        if primitive_type is not None:
            pulumi.set(__self__, "primitive_type", primitive_type)

    @property
    @pulumi.getter(name="enumType")
    def enum_type(self) -> Optional['outputs.TagTemplateFieldTypeEnumType']:
        """
        Represents an enum type.
        Exactly one of `primitive_type` or `enum_type` must be set
        Structure is documented below.
        """
        return pulumi.get(self, "enum_type")

    @property
    @pulumi.getter(name="primitiveType")
    def primitive_type(self) -> Optional[str]:
        """
        Represents primitive types - string, bool etc.
        Exactly one of `primitive_type` or `enum_type` must be set
        Possible values are `DOUBLE`, `STRING`, `BOOL`, and `TIMESTAMP`.
        """
        return pulumi.get(self, "primitive_type")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateFieldTypeEnumType(dict):
    def __init__(__self__, *,
                 allowed_values: List['outputs.TagTemplateFieldTypeEnumTypeAllowedValue']):
        """
        :param List['TagTemplateFieldTypeEnumTypeAllowedValueArgs'] allowed_values: The set of allowed values for this enum. The display names of the
               values must be case-insensitively unique within this set. Currently,
               enum values can only be added to the list of allowed values. Deletion
               and renaming of enum values are not supported.
               Can have up to 500 allowed values.
               Structure is documented below.
        """
        pulumi.set(__self__, "allowed_values", allowed_values)

    @property
    @pulumi.getter(name="allowedValues")
    def allowed_values(self) -> List['outputs.TagTemplateFieldTypeEnumTypeAllowedValue']:
        """
        The set of allowed values for this enum. The display names of the
        values must be case-insensitively unique within this set. Currently,
        enum values can only be added to the list of allowed values. Deletion
        and renaming of enum values are not supported.
        Can have up to 500 allowed values.
        Structure is documented below.
        """
        return pulumi.get(self, "allowed_values")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop


@pulumi.output_type
class TagTemplateFieldTypeEnumTypeAllowedValue(dict):
    def __init__(__self__, *,
                 display_name: str):
        """
        :param str display_name: The display name for this template.
        """
        pulumi.set(__self__, "display_name", display_name)

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        The display name for this template.
        """
        return pulumi.get(self, "display_name")

    def _translate_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop



# 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! *** :param List[str] file_patterns: Patterns to identify a set of files in Google Cloud Storage.                See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)                for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:                * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.                * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.                * gs://bucket_name/file*: matches files prefixed by file in bucket_name                * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name                * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name                * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name                * gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b                * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt         :param List['EntryGcsFilesetSpecSampleGcsFileSpecArgs'] sample_gcs_file_specs: -                Sample files contained in this fileset, not all files contained in this fileset are represented here.                Structure is documented below. Patterns to identify a set of files in Google Cloud Storage.         See [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)         for more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:         * gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.         * gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.         * gs://bucket_name/file*: matches files prefixed by file in bucket_name         * gs://bucket_name/??.txt: matches files with two characters followed by .txt in bucket_name         * gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in bucket_name         * gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in bucket_name         * gs://bucket_name/a/*/b: matches all files in bucket_name that match a/*/b pattern, such as a/c/b, a/d/b         * gs://another_bucket/a.txt: matches gs://another_bucket/a.txt -         Sample files contained in this fileset, not all files contained in this fileset are represented here.         Structure is documented below. :param str file_path: -                The full file path         :param float size_bytes: -                The size of the file, in bytes. -         The full file path -         The size of the file, in bytes. :param str field_name: The identifier for this object. Format specified above.         :param bool bool_value: Holds the value for a tag field with boolean type.         :param str display_name: -                The display name of this field         :param float double_value: Holds the value for a tag field with double type.         :param str enum_value: Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.                Structure is documented below.         :param float order: -                The order of this field with respect to other fields in this tag. For example, a higher value can indicate                a more important field. The value can be negative. Multiple fields can have the same order, and field orders                within a tag do not have to be sequential.         :param str string_value: Holds the value for a tag field with string type.         :param str timestamp_value: Holds the value for a tag field with timestamp type. The identifier for this object. Format specified above. Holds the value for a tag field with boolean type. -         The display name of this field Holds the value for a tag field with double type. Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.         Structure is documented below. -         The order of this field with respect to other fields in this tag. For example, a higher value can indicate         a more important field. The value can be negative. Multiple fields can have the same order, and field orders         within a tag do not have to be sequential. Holds the value for a tag field with string type. Holds the value for a tag field with timestamp type. :param str field_id: The identifier for this object. Format specified above.         :param 'TagTemplateFieldTypeArgs' type: The type of value this tag field can contain.                Structure is documented below.         :param str display_name: The display name for this template.         :param bool is_required: Whether this is a required field. Defaults to false.         :param str name: -                The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}         :param float order: The order of this field with respect to other fields in this tag template.                A higher value indicates a more important field. The value can be negative.                Multiple fields can have the same order, and field orders within a tag do not have to be sequential. The identifier for this object. Format specified above. The type of value this tag field can contain.         Structure is documented below. The display name for this template. Whether this is a required field. Defaults to false. -         The resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field} The order of this field with respect to other fields in this tag template.         A higher value indicates a more important field. The value can be negative.         Multiple fields can have the same order, and field orders within a tag do not have to be sequential. :param 'TagTemplateFieldTypeEnumTypeArgs' enum_type: Represents an enum type.                Exactly one of `primitive_type` or `enum_type` must be set                Structure is documented below.         :param str primitive_type: Represents primitive types - string, bool etc.                Exactly one of `primitive_type` or `enum_type` must be set                Possible values are `DOUBLE`, `STRING`, `BOOL`, and `TIMESTAMP`. Represents an enum type.         Exactly one of `primitive_type` or `enum_type` must be set         Structure is documented below. Represents primitive types - string, bool etc.         Exactly one of `primitive_type` or `enum_type` must be set         Possible values are `DOUBLE`, `STRING`, `BOOL`, and `TIMESTAMP`. :param List['TagTemplateFieldTypeEnumTypeAllowedValueArgs'] allowed_values: The set of allowed values for this enum. The display names of the                values must be case-insensitively unique within this set. Currently,                enum values can only be added to the list of allowed values. Deletion                and renaming of enum values are not supported.                Can have up to 500 allowed values.                Structure is documented below. The set of allowed values for this enum. The display names of the         values must be case-insensitively unique within this set. Currently,         enum values can only be added to the list of allowed values. Deletion         and renaming of enum values are not supported.         Can have up to 500 allowed values.         Structure is documented below. :param str display_name: The display name for this template. The display name for this template.