old_contents: # Copyright 2021 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.
  
  """This script is used to synthesize generated parts of this library."""
  
  import logging
  from pathlib import Path
  import synthtool as s
  import subprocess
  from synthtool.languages import php
  from synthtool import _tracked_paths
  
  logging.basicConfig(level=logging.DEBUG)
  
  src = Path(f"../{php.STAGING_DIR}/Compute").resolve()
  dest = Path().resolve()
  
  # Added so that we can pass copy_excludes in the owlbot_main() call
  _tracked_paths.add(src)
  
  # Exclude backwards-compatibility files for protos
  php.owlbot_main(
      src=src,
      dest=dest,
      copy_excludes=[
          src / "*/proto/src/Google/Cloud/Compute/*/*_*.php"
      ]
  )
  
  # remove class_alias code
  s.replace(
      "src/V*/*/*.php",
      r"^// Adding a class alias for backwards compatibility with the previous class name.$"
      + "\n"
      + r"^class_alias\(.*\);$"
      + "\n",
      '')
  
  # document and utilize apiEndpoint instead of serviceAddress
  s.replace(
      "**/Gapic/*GapicClient.php",
      r"'serviceAddress' =>",
      r"'apiEndpoint' =>")
  s.replace(
      "**/Gapic/*GapicClient.php",
      r"@type string \$serviceAddress\n\s+\*\s+The address",
      r"""@type string $serviceAddress
       *           **Deprecated**. This option will be removed in a future major release. Please
       *           utilize the `$apiEndpoint` option instead.
       *     @type string $apiEndpoint
       *           The address""")
  s.replace(
      "**/Gapic/*GapicClient.php",
      r"\$transportConfig, and any \$serviceAddress",
      r"$transportConfig, and any `$apiEndpoint`")
  
  ### [START] protoc backwards compatibility fixes
  
  # roll back to private properties.
  s.replace(
      "src/V*/**/*.php",
      r"Generated from protobuf field ([^\n]{0,})\n\s{5}\*/\n\s{4}protected \$",
      r"""Generated from protobuf field \1
       */
      private $""")
  
  ### [END] protoc backwards compatibility fixes
  
  # fix relative cloud.google.com links
  s.replace(
      "src/**/V*/**/*.php",
      r"(.{0,})\]\((/.{0,})\)",
      r"\1](https://cloud.google.com\2)"
  )
  
  
new_contents: # Copyright 2021 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.
  
  """This script is used to synthesize generated parts of this library."""
  
  import logging
  from pathlib import Path
  import synthtool as s
  import subprocess
  from synthtool.languages import php
  from synthtool import _tracked_paths
  
  logging.basicConfig(level=logging.DEBUG)
  
  src = Path(f"../{php.STAGING_DIR}/Compute").resolve()
  dest = Path().resolve()
  
  # Added so that we can pass copy_excludes in the owlbot_main() call
  _tracked_paths.add(src)
  
  # Exclude backwards-compatibility files for protos
  php.owlbot_main(
      src=src,
      dest=dest,
      copy_excludes=[
          src / "*/proto/src/Google/Cloud/Compute/*/*_*.php"
      ]
  )
  
  # remove class_alias code
  s.replace(
      "src/V*/**/*.php",
      r"^// Adding a class alias for backwards compatibility with the previous class name.$"
      + "\n"
      + r"^class_alias\(.*\);$"
      + "\n",
      '')
  
  # document and utilize apiEndpoint instead of serviceAddress
  s.replace(
      "**/Gapic/*GapicClient.php",
      r"'serviceAddress' =>",
      r"'apiEndpoint' =>")
  s.replace(
      "**/Gapic/*GapicClient.php",
      r"@type string \$serviceAddress\n\s+\*\s+The address",
      r"""@type string $serviceAddress
       *           **Deprecated**. This option will be removed in a future major release. Please
       *           utilize the `$apiEndpoint` option instead.
       *     @type string $apiEndpoint
       *           The address""")
  s.replace(
      "**/Gapic/*GapicClient.php",
      r"\$transportConfig, and any \$serviceAddress",
      r"$transportConfig, and any `$apiEndpoint`")
  
  ### [START] protoc backwards compatibility fixes
  
  # roll back to private properties.
  s.replace(
      "src/V*/**/*.php",
      r"Generated from protobuf field ([^\n]{0,})\n\s{5}\*/\n\s{4}protected \$",
      r"""Generated from protobuf field \1
       */
      private $""")
  
  ### [END] protoc backwards compatibility fixes
  
  # fix relative cloud.google.com links
  s.replace(
      "src/**/V*/**/*.php",
      r"(.{0,})\]\((/.{0,})\)",
      r"\1](https://cloud.google.com\2)"
  )
  
  
subject: remove deprecated aliases in double-nested protos (#4997)