# 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.


deep-remove-regex:
- "/java-maps-mapsplatformdatasets/grpc-google-.*/src"
- "/java-maps-mapsplatformdatasets/proto-google-.*/src"
- "/java-maps-mapsplatformdatasets/google-.*/src"
- "/java-maps-mapsplatformdatasets/samples/snippets/generated"

deep-preserve-regex:
- "/java-maps-mapsplatformdatasets/google-.*/src/test/java/com/google/cloud/.*/v.*/it/IT.*Test.java"

deep-copy-regex:
- source: "/google/maps/mapsplatformdatasets/(v.*)/.*-java/proto-google-.*/src"
  dest: "/owl-bot-staging/java-maps-mapsplatformdatasets/$1/proto-google-maps-mapsplatformdatasets-$1/src"
- source: "/google/maps/mapsplatformdatasets/(v.*)/.*-java/grpc-google-.*/src"
  dest: "/owl-bot-staging/java-maps-mapsplatformdatasets/$1/grpc-google-maps-mapsplatformdatasets-$1/src"
- source: "/google/maps/mapsplatformdatasets/(v.*)/.*-java/gapic-google-.*/src"
  dest: "/owl-bot-staging/java-maps-mapsplatformdatasets/$1/google-maps-mapsplatformdatasets/src"
- source: "/google/maps/mapsplatformdatasets/(v.*)/.*-java/samples/snippets/generated"
  dest: "/owl-bot-staging/java-maps-mapsplatformdatasets/$1/samples/snippets/generated"


api-name: maps-mapsplatformdatasets