Skip to content

Commit

Permalink
chore: Enable requesting numeric enums in "transport=rest" responses …
Browse files Browse the repository at this point in the history
…for services supporting this (#43)

* chore: Enable requesting numeric enums in "transport=rest" responses for services supporting this (Java, Go, Python, PHP, TypeScript, C#, and Ruby), even if they do not yet turn on REST transport

chore: disallow "transport=rest" for services where numeric enums are not confirmed to be supported (except in PHP and Java)
PiperOrigin-RevId: 493113566

Source-Link: googleapis/googleapis@758f0d1

Source-Link: googleapis/googleapis-gen@78bd8f0
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNzhiZDhmMDVlMTI3NjM2M2ViMTRlYWU3MGU5MWZlNGJjMjA3MDNhYiJ9

* 🦉 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 <gcf-owl-bot[bot]@users.noreply.github.com>
  • Loading branch information
gcf-owl-bot[bot] and gcf-owl-bot[bot] authored Dec 6, 2022
1 parent b424262 commit 2d5aea3
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,6 @@ def __init__(
transport (Union[str, AppConnectorsServiceTransport]): The
transport to use. If set to None, a transport is chosen
automatically.
NOTE: "rest" transport functionality is currently in a
beta state (preview). We welcome your feedback via an
issue in this library's source repository.
client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the
client. It won't take effect if a ``transport`` instance is provided.
(1) The ``api_endpoint`` property can be used to override the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@
rest_version=requests_version,
)

# TODO (numeric enums): This file was generated with the option to
# request that the server respond with enums JSON-encoded as
# numbers. The code below does not implement that functionality yet.


class AppConnectorsServiceRestInterceptor:
"""Interceptor for AppConnectorsService.
Expand Down Expand Up @@ -510,9 +514,6 @@ class AppConnectorsServiceRestTransport(AppConnectorsServiceTransport):
It sends JSON representations of protocol buffers over HTTP/1.1
NOTE: This REST transport functionality is currently in a beta
state (preview). We welcome your feedback via an issue in this
library's source repository. Thank you!
"""

def __init__(
Expand All @@ -532,39 +533,35 @@ def __init__(
) -> None:
"""Instantiate the transport.
NOTE: This REST transport functionality is currently in a beta
state (preview). We welcome your feedback via a GitHub issue in
this library's repository. Thank you!
Args:
host (Optional[str]):
The hostname to connect to.
credentials (Optional[google.auth.credentials.Credentials]): The
authorization credentials to attach to requests. These
credentials identify the application to the service; if none
are specified, the client will attempt to ascertain the
credentials from the environment.
credentials_file (Optional[str]): A file with credentials that can
be loaded with :func:`google.auth.load_credentials_from_file`.
This argument is ignored if ``channel`` is provided.
scopes (Optional(Sequence[str])): A list of scopes. This argument is
ignored if ``channel`` is provided.
client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
certificate to configure mutual TLS HTTP channel. It is ignored
if ``channel`` is provided.
quota_project_id (Optional[str]): An optional project to use for billing
and quota.
client_info (google.api_core.gapic_v1.client_info.ClientInfo):
The client info used to send a user-agent string along with
API requests. If ``None``, then default info will be used.
Generally, you only need to set this if you are developing
your own client library.
always_use_jwt_access (Optional[bool]): Whether self signed JWT should
be used for service account credentials.
url_scheme: the protocol scheme for the API endpoint. Normally
"https", but for testing or local servers,
"http" can be specified.
Args:
host (Optional[str]):
The hostname to connect to.
credentials (Optional[google.auth.credentials.Credentials]): The
authorization credentials to attach to requests. These
credentials identify the application to the service; if none
are specified, the client will attempt to ascertain the
credentials from the environment.
credentials_file (Optional[str]): A file with credentials that can
be loaded with :func:`google.auth.load_credentials_from_file`.
This argument is ignored if ``channel`` is provided.
scopes (Optional(Sequence[str])): A list of scopes. This argument is
ignored if ``channel`` is provided.
client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
certificate to configure mutual TLS HTTP channel. It is ignored
if ``channel`` is provided.
quota_project_id (Optional[str]): An optional project to use for billing
and quota.
client_info (google.api_core.gapic_v1.client_info.ClientInfo):
The client info used to send a user-agent string along with
API requests. If ``None``, then default info will be used.
Generally, you only need to set this if you are developing
your own client library.
always_use_jwt_access (Optional[bool]): Whether self signed JWT should
be used for service account credentials.
url_scheme: the protocol scheme for the API endpoint. Normally
"https", but for testing or local servers,
"http" can be specified.
"""
# Run the base constructor
# TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
Expand Down Expand Up @@ -709,7 +706,7 @@ def __call__(
body = json_format.MessageToJson(
transcoded_request["body"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
uri = transcoded_request["uri"]
method = transcoded_request["method"]
Expand All @@ -719,11 +716,13 @@ def __call__(
json_format.MessageToJson(
transcoded_request["query_params"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
)
query_params.update(self._get_unset_required_fields(query_params))

query_params["$alt"] = "json;enum-encoding=int"

# Send the request
headers = dict(metadata)
headers["Content-Type"] = "application/json"
Expand Down Expand Up @@ -809,11 +808,13 @@ def __call__(
json_format.MessageToJson(
transcoded_request["query_params"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
)
query_params.update(self._get_unset_required_fields(query_params))

query_params["$alt"] = "json;enum-encoding=int"

# Send the request
headers = dict(metadata)
headers["Content-Type"] = "application/json"
Expand Down Expand Up @@ -905,11 +906,13 @@ def __call__(
json_format.MessageToJson(
transcoded_request["query_params"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
)
query_params.update(self._get_unset_required_fields(query_params))

query_params["$alt"] = "json;enum-encoding=int"

# Send the request
headers = dict(metadata)
headers["Content-Type"] = "application/json"
Expand Down Expand Up @@ -995,11 +998,13 @@ def __call__(
json_format.MessageToJson(
transcoded_request["query_params"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
)
query_params.update(self._get_unset_required_fields(query_params))

query_params["$alt"] = "json;enum-encoding=int"

# Send the request
headers = dict(metadata)
headers["Content-Type"] = "application/json"
Expand Down Expand Up @@ -1080,7 +1085,7 @@ def __call__(
body = json_format.MessageToJson(
transcoded_request["body"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
uri = transcoded_request["uri"]
method = transcoded_request["method"]
Expand All @@ -1090,11 +1095,13 @@ def __call__(
json_format.MessageToJson(
transcoded_request["query_params"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
)
query_params.update(self._get_unset_required_fields(query_params))

query_params["$alt"] = "json;enum-encoding=int"

# Send the request
headers = dict(metadata)
headers["Content-Type"] = "application/json"
Expand Down Expand Up @@ -1180,7 +1187,7 @@ def __call__(
body = json_format.MessageToJson(
transcoded_request["body"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
uri = transcoded_request["uri"]
method = transcoded_request["method"]
Expand All @@ -1190,11 +1197,13 @@ def __call__(
json_format.MessageToJson(
transcoded_request["query_params"],
including_default_value_fields=False,
use_integers_for_enums=False,
use_integers_for_enums=True,
)
)
query_params.update(self._get_unset_required_fields(query_params))

query_params["$alt"] = "json;enum-encoding=int"

# Send the request
headers = dict(metadata)
headers["Content-Type"] = "application/json"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2594,7 +2594,7 @@ def test_list_app_connectors_rest_required_fields(

response = client.list_app_connectors(request)

expected_params = []
expected_params = [("$alt", "json;enum-encoding=int")]
actual_params = req.call_args.kwargs["params"]
assert expected_params == actual_params

Expand Down Expand Up @@ -2941,7 +2941,7 @@ def test_get_app_connector_rest_required_fields(

response = client.get_app_connector(request)

expected_params = []
expected_params = [("$alt", "json;enum-encoding=int")]
actual_params = req.call_args.kwargs["params"]
assert expected_params == actual_params

Expand Down Expand Up @@ -3234,7 +3234,7 @@ def test_create_app_connector_rest_required_fields(

response = client.create_app_connector(request)

expected_params = []
expected_params = [("$alt", "json;enum-encoding=int")]
actual_params = req.call_args.kwargs["params"]
assert expected_params == actual_params

Expand Down Expand Up @@ -3564,7 +3564,7 @@ def test_update_app_connector_rest_required_fields(

response = client.update_app_connector(request)

expected_params = []
expected_params = [("$alt", "json;enum-encoding=int")]
actual_params = req.call_args.kwargs["params"]
assert expected_params == actual_params

Expand Down Expand Up @@ -3879,7 +3879,7 @@ def test_delete_app_connector_rest_required_fields(

response = client.delete_app_connector(request)

expected_params = []
expected_params = [("$alt", "json;enum-encoding=int")]
actual_params = req.call_args.kwargs["params"]
assert expected_params == actual_params

Expand Down Expand Up @@ -4156,7 +4156,7 @@ def test_report_status_rest_required_fields(

response = client.report_status(request)

expected_params = []
expected_params = [("$alt", "json;enum-encoding=int")]
actual_params = req.call_args.kwargs["params"]
assert expected_params == actual_params

Expand Down

0 comments on commit 2d5aea3

Please sign in to comment.