# -*- coding: utf-8 -*-
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from google.cloud.bigquery_storage import gapic_version as package_version

__version__ = package_version.__version__


from google.cloud.bigquery_storage_v1 import BigQueryReadClient
from google.cloud.bigquery_storage_v1.services.big_query_write.client import (
    BigQueryWriteClient,
)
from google.cloud.bigquery_storage_v1.services.big_query_write.async_client import (
    BigQueryWriteAsyncClient,
)

from google.cloud.bigquery_storage_v1 import gapic_types as types
from google.cloud.bigquery_storage_v1.types.arrow import ArrowRecordBatch
from google.cloud.bigquery_storage_v1.types.arrow import ArrowSchema
from google.cloud.bigquery_storage_v1.types.arrow import ArrowSerializationOptions
from google.cloud.bigquery_storage_v1.types.avro import AvroRows
from google.cloud.bigquery_storage_v1.types.avro import AvroSchema
from google.cloud.bigquery_storage_v1.types.avro import AvroSerializationOptions
from google.cloud.bigquery_storage_v1.types.protobuf import ProtoRows
from google.cloud.bigquery_storage_v1.types.protobuf import ProtoSchema
from google.cloud.bigquery_storage_v1.types.storage import AppendRowsRequest
from google.cloud.bigquery_storage_v1.types.storage import AppendRowsResponse
from google.cloud.bigquery_storage_v1.types.storage import (
    BatchCommitWriteStreamsRequest,
)
from google.cloud.bigquery_storage_v1.types.storage import (
    BatchCommitWriteStreamsResponse,
)
from google.cloud.bigquery_storage_v1.types.storage import CreateReadSessionRequest
from google.cloud.bigquery_storage_v1.types.storage import CreateWriteStreamRequest
from google.cloud.bigquery_storage_v1.types.storage import FinalizeWriteStreamRequest
from google.cloud.bigquery_storage_v1.types.storage import FinalizeWriteStreamResponse
from google.cloud.bigquery_storage_v1.types.storage import FlushRowsRequest
from google.cloud.bigquery_storage_v1.types.storage import FlushRowsResponse
from google.cloud.bigquery_storage_v1.types.storage import GetWriteStreamRequest
from google.cloud.bigquery_storage_v1.types.storage import ReadRowsRequest
from google.cloud.bigquery_storage_v1.types.storage import ReadRowsResponse
from google.cloud.bigquery_storage_v1.types.storage import RowError
from google.cloud.bigquery_storage_v1.types.storage import SplitReadStreamRequest
from google.cloud.bigquery_storage_v1.types.storage import SplitReadStreamResponse
from google.cloud.bigquery_storage_v1.types.storage import StorageError
from google.cloud.bigquery_storage_v1.types.storage import StreamStats
from google.cloud.bigquery_storage_v1.types.storage import ThrottleState
from google.cloud.bigquery_storage_v1.types.stream import ReadSession
from google.cloud.bigquery_storage_v1.types.stream import ReadStream
from google.cloud.bigquery_storage_v1.types.stream import WriteStream
from google.cloud.bigquery_storage_v1.types.stream import DataFormat
from google.cloud.bigquery_storage_v1.types.stream import WriteStreamView
from google.cloud.bigquery_storage_v1.types.table import TableFieldSchema
from google.cloud.bigquery_storage_v1.types.table import TableSchema

__all__ = (
    "BigQueryReadClient",
    "BigQueryWriteClient",
    "BigQueryWriteAsyncClient",
    "__version__",
    "types",
    "ArrowRecordBatch",
    "ArrowSchema",
    "ArrowSerializationOptions",
    "AvroRows",
    "AvroSchema",
    "AvroSerializationOptions",
    "ProtoRows",
    "ProtoSchema",
    "AppendRowsRequest",
    "AppendRowsResponse",
    "BatchCommitWriteStreamsRequest",
    "BatchCommitWriteStreamsResponse",
    "CreateReadSessionRequest",
    "CreateWriteStreamRequest",
    "FinalizeWriteStreamRequest",
    "FinalizeWriteStreamResponse",
    "FlushRowsRequest",
    "FlushRowsResponse",
    "GetWriteStreamRequest",
    "ReadRowsRequest",
    "ReadRowsResponse",
    "RowError",
    "SplitReadStreamRequest",
    "SplitReadStreamResponse",
    "StorageError",
    "StreamStats",
    "ThrottleState",
    "ReadSession",
    "ReadStream",
    "WriteStream",
    "DataFormat",
    "WriteStreamView",
    "TableFieldSchema",
    "TableSchema",
)
