#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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
#
#    https://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.
#

# Please keep the entries sorted lexicographically in each category.

# General
build: ["assembly.xml", "buildSrc/**/*", ".gitattributes", ".github/workflows/*", ".gitignore", "gradle/**/*", ".mailmap", "release/**/*", "sdks/java/build-tools/**/*"]
docker: ["runners/flink/job-server-container/**/*", "runners/spark/job-server/container/**/*", "sdks/go/container/**/*", "sdks/java/container/**/*", "sdks/python/container/**/*"]
examples: ["examples/**/*", "sdks/go/examples/**/*", "sdks/python/apache_beam/examples/**/*"]
go: ["sdks/go/**/*", "sdks/go.mod", "sdks/go.sum", "learning/katas/go/**/*"]
infra: [".test-infra/**/*"]
java: ["examples/java/**/*", "sdks/java/**/*", "runners/extensions-java/**/*", "learning/katas/java/**/*", "learning/katas/kotlin/**/*"]
kotlin: ["examples/kotlin/**/*"]
learning: ["learning/**/*"]
model: ["model/**/*"]
python: ["sdks/python/**/*", "learning/katas/python/**/*"]
typescript: ["sdks/typescript/**/*"]
vendor: ["vendor/**/*"]
website: ["website/**/*"]
yaml: ["sdks/python/apache_beam/yaml/**"]

# Extensions
extensions: ["sdks/java/extensions/**/*", "runners/extensions-java/**/*"]
"euphoria": ["sdks/java/extensions/euphoria/**/*"]
"jackson": ["sdks/java/extensions/jackson/**/*"]
"join-library": ["sdks/java/extensions/join-library/**/*"]
"kryo": ["sdks/java/extensions/kryo/**/*"]
"protobuf": ["sdks/java/extensions/protobuf/**/*"]
"sketching": ["sdks/java/extensions/sketching/**/*"]
"sorter": ["sdks/java/extensions/sorter/**/*"]
"sql": ["sdks/java/extensions/sql/**/*"]
"timeseries": ["sdks/java/extensions/timeseries/*"]
"zetasketch": ["sdks/java/extensions/zetasketch/**/*"]

# IO
io:  ["sdks/go/pkg/beam/io/**/*", "sdks/java/io/**/*", "sdks/python/apache_beam/io/**/*", "sdks/typescript/src/apache_beam/io/**/*"]
"amqp":  ["sdks/java/io/amqp/**/*"]
"aws":  ["sdks/java/io/amazon-web-services/**/*", "sdks/java/io/amazon-web-services2/**/*", "sdks/python/apache_beam/io/aws/**/*"]
"cassandra":  ["sdks/java/io/cassandra/**/*"]
"clickhouse":  ["sdks/java/io/clickhouse/**/*"]
"elasticsearch":  ["sdks/java/io/elasticsearch/**/*", "sdks/java/io/elasticsearch-tests/**/*"]
"gcp":  ["sdks/go/pkg/beam/io/bigqueryio/**/*", "sdks/go/pkg/beam/io/datastoreio/**/*", "sdks/go/pkg/beam/io/pubsubio/**/*", "sdks/java/io/bigquery-io-perf-tests/**/*", "sdks/java/io/google-cloud-platform/**/*", "sdks/python/apache_beam/io/gcp/**/*", "sdks/java/extensions/google-cloud-platform-core/**/*"]
"hadoop":  ["sdks/java/io/hadoop-common/**/*", "sdks/java/io/hadoop-file-system/**/*", "sdks/java/io/hadoop-format/**/*"]
"hbase":  ["sdks/java/io/hbase/**/*"]
"hcatalog":  ["sdks/java/io/hcatalog/**/*"]
"healthcare":  ["sdks/python/apache_beam/io/gcp/healthcare/**/*", "sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/**/*"]
"jdbc":  ["sdks/java/io/jdbc/**/*"]
"jms":  ["sdks/java/io/jms/**/*"]
"kafka":  ["sdks/java/io/kafka/**/*"]
"kinesis":  ["sdks/java/io/kinesis/**/*"]
"kudu":  ["sdks/java/io/kudu/**/*"]
"mongodb":  ["sdks/java/io/mongodb/**/*"]
"mqtt":  ["sdks/java/io/mqtt/**/*"]
"parquet":  ["sdks/java/io/parquet/**/*"]
"rabbitmq":  ["sdks/java/io/rabbitmq/**/*"]
"redis":  ["sdks/java/io/redis/**/*"] 
"solr":  ["sdks/java/io/solr/**/*"]
"spanner": ["sdks/go/pkg/beam/io/spannerio/**/*", "sdks/python/apache_beam/io/gcp/spanner.py", "sdks/python/apache_beam/io/gcp/experimental/spannerio.py", "sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/**/*"]
"bigtable": ["sdks/go/pkg/beam/io/bigtableio/**/*", "sdks/go/pkg/beam/io/xlang/bigtableio/**/*", "sdks/python/apache_beam/io/gcp/bigtableio.py", "sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/**/*"]
"synthetic":  ["sdks/java/io/synthetic/**/*"]
"tests":  ["sdks/java/io/file-based-io-tests/**/*"]
"thrift": ["sdks/java/io/thrift/**/*"]
"tika":  ["sdks/java/io/tika/**/*"]
"xml":  ["sdks/java/io/xml/**/*"]
 
# Runners
"runners": ["runners/**/*", "sdks/go/pkg/beam/runners/**/*", "sdks/python/apache_beam/runners/**/*", "sdks/typescript/src/apache_beam/runners/**/*"]
"core": ["runners/core-java/**/*"]
"dataflow": ["runners/google-cloud-dataflow-java/**/*", "sdks/go/pkg/beam/runners/dataflow/**/*", "sdks/python/runners/dataflow/**/*"]
"direct": ["runners/direct-java/**/*", "sdks/go/pkg/beam/runners/direct/**/*", "sdks/python/runners/direct/**/*"]
"flink": ["runners/flink/**/*", "sdks/go/pkg/beam/runners/flink/**/*"]
"fn-execution": ["runners/java-fn-execution/**/*"]
"interactive": ["sdks/python/runners/interactive/**/*"]
"jet": ["runners/jet/**/*"]
"local": ["runners/local-java/**/*"]
"portability": ["runners/portability/**/*"]
"prism": ["runners/prism/**/*", "sdks/go/pkg/beam/runners/prism/**/*", "sdks/go/cmd/prism/**/*", "sdks/python/apache_beam/runners/portability/prism_runner.py","sdks/python/apache_beam/runners/portability/prism_runner_test.py"]
"samza": ["runners/samza/**/*"]
"spark": ["runners/spark/**/*", "sdks/go/pkg/beam/runners/spark/**/*"]
"twister2": ["runners/twister2/**/*"]
