From 0ca47c543a8b5f9d273c28c3c2e490a625a068f7 Mon Sep 17 00:00:00 2001
From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com>
Date: Fri, 6 Jan 2023 12:00:19 +0000
Subject: [PATCH 1/3] chore(python): add support for python 3.11 [autoapprove]
 (#14)
Source-Link: https://togithub.com/googleapis/synthtool/commit/7197a001ffb6d8ce7b0b9b11c280f0c536c1033a
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:c43f1d918bcf817d337aa29ff833439494a158a0831508fda4ec75dc4c0d0320
---
 .github/.OwlBot.lock.yaml                    |  4 +-
 .github/workflows/unittest.yml               |  2 +-
 .kokoro/samples/python3.11/common.cfg        | 40 ++++++++++++++++++++
 .kokoro/samples/python3.11/continuous.cfg    |  6 +++
 .kokoro/samples/python3.11/periodic-head.cfg | 11 ++++++
 .kokoro/samples/python3.11/periodic.cfg      |  6 +++
 .kokoro/samples/python3.11/presubmit.cfg     |  6 +++
 CONTRIBUTING.rst                             |  6 ++-
 noxfile.py                                   |  2 +-
 9 files changed, 77 insertions(+), 6 deletions(-)
 create mode 100644 .kokoro/samples/python3.11/common.cfg
 create mode 100644 .kokoro/samples/python3.11/continuous.cfg
 create mode 100644 .kokoro/samples/python3.11/periodic-head.cfg
 create mode 100644 .kokoro/samples/python3.11/periodic.cfg
 create mode 100644 .kokoro/samples/python3.11/presubmit.cfg
diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml
index fccaa8e..889f77d 100644
--- a/.github/.OwlBot.lock.yaml
+++ b/.github/.OwlBot.lock.yaml
@@ -1,4 +1,4 @@
-# Copyright 2022 Google LLC
+# Copyright 2023 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,4 +13,4 @@
 # limitations under the License.
 docker:
   image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest
-  digest: sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1
+  digest: sha256:c43f1d918bcf817d337aa29ff833439494a158a0831508fda4ec75dc4c0d0320
diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml
index 23000c0..8057a76 100644
--- a/.github/workflows/unittest.yml
+++ b/.github/workflows/unittest.yml
@@ -8,7 +8,7 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        python: ['3.7', '3.8', '3.9', '3.10']
+        python: ['3.7', '3.8', '3.9', '3.10', '3.11']
     steps:
     - name: Checkout
       uses: actions/checkout@v3
diff --git a/.kokoro/samples/python3.11/common.cfg b/.kokoro/samples/python3.11/common.cfg
new file mode 100644
index 0000000..a554ef6
--- /dev/null
+++ b/.kokoro/samples/python3.11/common.cfg
@@ -0,0 +1,40 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+  define_artifacts {
+    regex: "**/*sponge_log.xml"
+  }
+}
+
+# Specify which tests to run
+env_vars: {
+    key: "RUN_TESTS_SESSION"
+    value: "py-3.11"
+}
+
+# Declare build specific Cloud project.
+env_vars: {
+    key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
+    value: "python-docs-samples-tests-311"
+}
+
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/python-edgecontainer/.kokoro/test-samples.sh"
+}
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+    key: "TRAMPOLINE_IMAGE"
+    value: "gcr.io/cloud-devrel-kokoro-resources/python-samples-testing-docker"
+}
+
+# Download secrets for samples
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/python-docs-samples"
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "python-edgecontainer/.kokoro/trampoline_v2.sh"
\ No newline at end of file
diff --git a/.kokoro/samples/python3.11/continuous.cfg b/.kokoro/samples/python3.11/continuous.cfg
new file mode 100644
index 0000000..a1c8d97
--- /dev/null
+++ b/.kokoro/samples/python3.11/continuous.cfg
@@ -0,0 +1,6 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "True"
+}
\ No newline at end of file
diff --git a/.kokoro/samples/python3.11/periodic-head.cfg b/.kokoro/samples/python3.11/periodic-head.cfg
new file mode 100644
index 0000000..4cdb1f4
--- /dev/null
+++ b/.kokoro/samples/python3.11/periodic-head.cfg
@@ -0,0 +1,11 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "True"
+}
+
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/python-edgecontainer/.kokoro/test-samples-against-head.sh"
+}
diff --git a/.kokoro/samples/python3.11/periodic.cfg b/.kokoro/samples/python3.11/periodic.cfg
new file mode 100644
index 0000000..71cd1e5
--- /dev/null
+++ b/.kokoro/samples/python3.11/periodic.cfg
@@ -0,0 +1,6 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "False"
+}
diff --git a/.kokoro/samples/python3.11/presubmit.cfg b/.kokoro/samples/python3.11/presubmit.cfg
new file mode 100644
index 0000000..a1c8d97
--- /dev/null
+++ b/.kokoro/samples/python3.11/presubmit.cfg
@@ -0,0 +1,6 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+    key: "INSTALL_LIBRARY_FROM_SOURCE"
+    value: "True"
+}
\ No newline at end of file
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index d9c2f4b..07e06eb 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -22,7 +22,7 @@ In order to add a feature:
   documentation.
 
 - The feature must work fully on the following CPython versions:
-  3.7, 3.8, 3.9 and 3.10 on both UNIX and Windows.
+  3.7, 3.8, 3.9, 3.10 and 3.11 on both UNIX and Windows.
 
 - The feature must not add unnecessary dependencies (where
   "unnecessary" is of course subjective, but new dependencies should
@@ -72,7 +72,7 @@ We use `nox `__ to instrument our tests.
 
 - To run a single unit test::
 
-    $ nox -s unit-3.10 -- -k 
+    $ nox -s unit-3.11 -- -k 
 
 
   .. note::
@@ -225,11 +225,13 @@ We support:
 -  `Python 3.8`_
 -  `Python 3.9`_
 -  `Python 3.10`_
+-  `Python 3.11`_
 
 .. _Python 3.7: https://docs.python.org/3.7/
 .. _Python 3.8: https://docs.python.org/3.8/
 .. _Python 3.9: https://docs.python.org/3.9/
 .. _Python 3.10: https://docs.python.org/3.10/
+.. _Python 3.11: https://docs.python.org/3.11/
 
 
 Supported versions can be found in our ``noxfile.py`` `config`_.
diff --git a/noxfile.py b/noxfile.py
index d8440c0..e716318 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -32,7 +32,7 @@
 
 DEFAULT_PYTHON_VERSION = "3.8"
 
-UNIT_TEST_PYTHON_VERSIONS = ["3.7", "3.8", "3.9", "3.10"]
+UNIT_TEST_PYTHON_VERSIONS = ["3.7", "3.8", "3.9", "3.10", "3.11"]
 UNIT_TEST_STANDARD_DEPENDENCIES = [
     "mock",
     "asyncmock",
From c43bbc12171fbf39d1ee760ea61be145e727e807 Mon Sep 17 00:00:00 2001
From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com>
Date: Mon, 9 Jan 2023 23:19:15 -0500
Subject: [PATCH 2/3] feat: Add support for python 3.11 (#15)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: Add support for python 3.11
chore: Update gapic-generator-python to v1.8.0
PiperOrigin-RevId: 500768693
Source-Link: https://github.com/googleapis/googleapis/commit/190b612e3d0ff8f025875a669e5d68a1446d43c1
Source-Link: https://github.com/googleapis/googleapis-gen/commit/7bf29a414b9ecac3170f0b65bdc2a95705c0ef1a
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiN2JmMjlhNDE0YjllY2FjMzE3MGYwYjY1YmRjMmE5NTcwNWMwZWYxYSJ9
* 🦉 Updates from OwlBot post-processor
See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md
Co-authored-by: Owl Bot 
---
 .../services/edge_container/async_client.py                 | 2 +-
 .../edgecontainer_v1/services/edge_container/client.py      | 2 +-
 .../snippet_metadata_google.cloud.edgecontainer.v1.json     | 2 +-
 setup.py                                                    | 2 ++
 testing/constraints-3.12.txt                                | 6 ++++++
 5 files changed, 11 insertions(+), 3 deletions(-)
 create mode 100644 testing/constraints-3.12.txt
diff --git a/google/cloud/edgecontainer_v1/services/edge_container/async_client.py b/google/cloud/edgecontainer_v1/services/edge_container/async_client.py
index 4595151..89636d0 100644
--- a/google/cloud/edgecontainer_v1/services/edge_container/async_client.py
+++ b/google/cloud/edgecontainer_v1/services/edge_container/async_client.py
@@ -156,7 +156,7 @@ def get_mtls_endpoint_and_cert_source(
         The API endpoint is determined in the following order:
         (1) if `client_options.api_endpoint` if provided, use the provided one.
         (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variabel is "never", use the default API
+        default mTLS endpoint; if the environment variable is "never", use the default API
         endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
         use the default API endpoint.
 
diff --git a/google/cloud/edgecontainer_v1/services/edge_container/client.py b/google/cloud/edgecontainer_v1/services/edge_container/client.py
index 153cbee..7995085 100644
--- a/google/cloud/edgecontainer_v1/services/edge_container/client.py
+++ b/google/cloud/edgecontainer_v1/services/edge_container/client.py
@@ -414,7 +414,7 @@ def get_mtls_endpoint_and_cert_source(
         The API endpoint is determined in the following order:
         (1) if `client_options.api_endpoint` if provided, use the provided one.
         (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
-        default mTLS endpoint; if the environment variabel is "never", use the default API
+        default mTLS endpoint; if the environment variable is "never", use the default API
         endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
         use the default API endpoint.
 
diff --git a/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json b/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json
index 0865b8f..523c75f 100644
--- a/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json
+++ b/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json
@@ -8,7 +8,7 @@
     ],
     "language": "PYTHON",
     "name": "google-cloud-edgecontainer",
-    "version": "0.3.0"
+    "version": "0.1.0"
   },
   "snippets": [
     {
diff --git a/setup.py b/setup.py
index 60d8a6f..41c2464 100644
--- a/setup.py
+++ b/setup.py
@@ -40,6 +40,7 @@
 dependencies = [
     "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*",
     "proto-plus >= 1.22.0, <2.0.0dev",
+    "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'",
     "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
 ]
 url = "https://github.com/googleapis/python-edgecontainer"
@@ -79,6 +80,7 @@
         "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
+        "Programming Language :: Python :: 3.11",
         "Operating System :: OS Independent",
         "Topic :: Internet",
     ],
diff --git a/testing/constraints-3.12.txt b/testing/constraints-3.12.txt
new file mode 100644
index 0000000..ed7f9ae
--- /dev/null
+++ b/testing/constraints-3.12.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
From d9b66f3687faecffd0cf7b2f31c466f7def02f85 Mon Sep 17 00:00:00 2001
From: "release-please[bot]"
 <55107282+release-please[bot]@users.noreply.github.com>
Date: Tue, 10 Jan 2023 13:30:03 -0500
Subject: [PATCH 3/3] chore(main): release 0.4.0 (#16)
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
---
 .release-please-manifest.json                              | 2 +-
 CHANGELOG.md                                               | 7 +++++++
 google/cloud/edgecontainer/gapic_version.py                | 2 +-
 google/cloud/edgecontainer_v1/gapic_version.py             | 2 +-
 .../snippet_metadata_google.cloud.edgecontainer.v1.json    | 2 +-
 5 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 0ee8c01..2537c1f 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
 {
-  ".": "0.3.0"
+  ".": "0.4.0"
 }
diff --git a/CHANGELOG.md b/CHANGELOG.md
index de32c63..d9fe7f3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 # Changelog
 
+## [0.4.0](https://github.com/googleapis/python-edgecontainer/compare/v0.3.0...v0.4.0) (2023-01-10)
+
+
+### Features
+
+* Add support for python 3.11 ([#15](https://github.com/googleapis/python-edgecontainer/issues/15)) ([c43bbc1](https://github.com/googleapis/python-edgecontainer/commit/c43bbc12171fbf39d1ee760ea61be145e727e807))
+
 ## [0.3.0](https://github.com/googleapis/python-edgecontainer/compare/v0.2.1...v0.3.0) (2022-12-15)
 
 
diff --git a/google/cloud/edgecontainer/gapic_version.py b/google/cloud/edgecontainer/gapic_version.py
index a6ccd66..933e30b 100644
--- a/google/cloud/edgecontainer/gapic_version.py
+++ b/google/cloud/edgecontainer/gapic_version.py
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-__version__ = "0.3.0"  # {x-release-please-version}
+__version__ = "0.4.0"  # {x-release-please-version}
diff --git a/google/cloud/edgecontainer_v1/gapic_version.py b/google/cloud/edgecontainer_v1/gapic_version.py
index a6ccd66..933e30b 100644
--- a/google/cloud/edgecontainer_v1/gapic_version.py
+++ b/google/cloud/edgecontainer_v1/gapic_version.py
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-__version__ = "0.3.0"  # {x-release-please-version}
+__version__ = "0.4.0"  # {x-release-please-version}
diff --git a/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json b/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json
index 523c75f..e0f0034 100644
--- a/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json
+++ b/samples/generated_samples/snippet_metadata_google.cloud.edgecontainer.v1.json
@@ -8,7 +8,7 @@
     ],
     "language": "PYTHON",
     "name": "google-cloud-edgecontainer",
-    "version": "0.1.0"
+    "version": "0.4.0"
   },
   "snippets": [
     {